Skip to main content

Full text of "Amazing Computer Magazine (January 1988)"

See other formats


■^4^ 



<t 



5 80 ; -" : 
<\^ .A 0.3 



^ 



■..:-. 



35 000 
40 441 



i 121 
32; ',05 ?' v " .■ '' 'i ~" 710.3* s .78 105 »' 



£.55 



■: -.-J OvW«8v«.|-«nw 5/W ■;.■■:■■■■■■ 



5>;355 1350.340 .«-;*< 
i 25 520 3?! 0.30 iS. 



Ff I f ffi!If!i 



COMPUTIN 



I? 




■Pvn 



o«r LJrtgtna 



,lhi, 




. 



:?3DolB^HHHBd 

i 40 3 

) 32378 3005 1505 6 

..■■,.••..".::,• :.■.-..:.-..■■■:■>.■..: C. .■•:■■: .:.:.::.; 

sso 3710.300? >ea 

• 353852815.6001 5.<J 

441 ae-^pooa o,oe 3 : :. 

>?S ? ;05.* 5 05 .55 3251 82 & 53 3 t30 3£ 378 SQ0&.43 QS 

450; J00.10 >-5 I 53 28! 3 <0 »14S" 1;3 jC £02300,1005 8 

: 26 S2O3.1CL*0 IS .> . '8 32 5 0. }? 82. i> 4 & £0 3/10.30 06 6 

6 ! 3 50 01 5 .80 250 52.55 77 3 i 7T35305 28 ! 5 50 3 i 5 

254?. <W 3! $44 

300; -.*5 

! 28 520 3?H 

'..'■.: -..■■.".- BiSy ■ 

: : •'• •■ : ■ 
■ ■■".■ 



!■.'■.••■■ /si 



. 



eSOUTCe US $3.50 Canada $4.50 










i 1 B0 



- :.■ :.--.-■ . 



■ m 8 



."::'.' ■'':'■''; ■■"?£■: .-V :V- - ^ ■■'■■'■ .7 -^/'- ■"■■:■* 

■;■-, --.■,-■'. .-■.■■-. -■■ * • ■■■. •-- 



,■: d JiJ,S5yr»d 

2k I 



t Shfft: San>]tSheet.bsj> 
J» Tnitei Kms w Stlsct iCdl. 



Changed:" 





[41 - p 

S78 300S.45 05 r ; .SS 325 ; 2378 

! 58 5SB M 6: 8 >: ifl 255 3 3735 SO 4 i 40 SS 588 

3gg ;: : :'; ; ;-' : so ni 3 .90 200 42.55 ? ? 3 1 71 33 398 

ft-;i 344 @ ^4.50 03 i 

}?J} 3005.45 05 0.53 5?:3 ' 

! B0 450 3300.10 { 29 ■ 



*R5533180 333783005/i?.0S 9 
D. 45 7163 BO 46-0 2300.1 05 



»3 &?4d 0U5' 
3': 32S3 10.05 32 
80 230542.557? 

:ViV ••.;..:.■. :.': ';'.: ::.r. g^j 



:.. ■., ■.-■ , '•:....,-■.,■ ? 



:0; >:;■:■; 



BSpread: 
ligaBASIC Spreadsheet 



"investor's Advantage 






Money Mentor 
Haicalc 



90 


'VjOfl e .;:; ;-^r -?■" 


b:> 


• ': ^ ■' :".; *?A :'.;f -1 ; r-" - ^ 



141 2543,00 09 0.05 3^ b 
; 323783005.4505 8.55 ? 
&B IJS5.34 0S 8 ,44 2b. ^ ! 



.V ■-..-■ .v*>. rt r;. ; 






00 ; ; v; :.: 



> 35 39S 2815.50 01 S ,90 2SG 
) 40441 2843*0008 5.05 344 
I 00 070 3005.45 05 .55 500 

'■: 5.03 2843S0.21 45 




50 4 i^0 50 5^V35^4 



;03 80 450 4399.10 06 6 



■■:■' 



■:..:.. : y:> :x:: 



JyilMjiillSlIjJ 



3 ...... - - • 



i !?A 520 3710.30 08 05 '- 2 !84 2 : 5 50 



. - ,\ .'•.: 




"Open the pod bay doors, HAL..." 



Programmers cast their vote! 

Right now, leading software developers 
are hard at work on the next generation 
of Amiga® products. To add the 
spectacular sound effects we've all 
come to expect from Amiga software, 
they are overwhelmingly choosing one 
sound recording package... 
FutureSound. As one developer put it, 
"FutureSound should be standard 
equipment for the Amiga." 

FutureSound the clear winner... 

Why has FutureSound become the clear 
choice for digital sound sampling on the 
Amiga? The reason is obvious: a 
hardware design that has left nothing 
out. FutureSound includes two input 
sources, each with its own amplifier, 
one for a microphone and one for direct 
recording; input volume control; high 
speed 8-bit parallel interface, complete 
with an additional printer port; extra 
filters that take care of everything from 
background hiss to interference from 



the monitor; and of course, a 
microphone so that you can begin 
recording immediately. 

What about software? 

FutureSound transforms your Amiga 
into a powerful, multi-track recording 
studio. Of course, this innovative 
software package provides you with all 
the basic recording features you expect. 
But with FutureSound, this is just the 
beginning. A forty-page manual will 
guide you through such features as 
variable sampling rates, visual editing, 
mixing, special effects generation, and 
more. A major software publisher is 
soon to release a simulation with an 
engine roar that will rattle your teeth. 
This incredible reverberation effect was 
designed with FurureSound's software. 



Y" 



'APPLIED 



H V8S10H3 






-J 



Question: What can a 300 pound 
space creature do with these 
sounds? 

Answer: Anything he wants. 

Since FutureSound is IFF compatible 
(actually three separate formats are 
supported) your sounds can be used by 
most Amiga sound applications. With 
FutureSound and Deluxe Video 
Construction Set from Electronic Arts, 
your video creations can use the voice 
of Mr. Spock, your mother-in-law, or a 
disturbed super computer. 

Programming support is also provided. 
Whether you're a "C" programming 
wiz or a Sunday afternoon BASIC 
hacker, all the routines you need are on 
the non-copy protected diskette. 

Your Amiga dealer should have 
FutureSound in stock. If not, just give 
us a call and for $175 (VIS A, 
MasterCard or COD) we'll send one 
right out to you. Ahead warp factor 
one! 



Applied Visions, Inc., Suite 2200, One Kendall Square 
Cambridge, MA 021 39 (61 7) 494-541 7 

Amiga is a registered trademark ol Commodore-Amiga, Inc. 
Deluxe Video Construction Set is a trademark of Eectronic Arts. Inc. 



sSBbBSh 

SaHH 







DELIVERS ULTIMATE 
GRAPHICS POWER 



Bring the world into your Amiga with 
Digi-View, the 4096 color video 
digitizer. In seconds you can capture 
any photograph or object your video 
camera can see in full color and with 
clarity never before available on a 
home computer. Digi-View's advanced 
features include: 



Dithering routines give up to 
100,000 apparent colors on screen 
NewTek's exclusive Enhanced 
Hold-and-Modify mode allows for 
exceptionally detailed images 

Digitize images in any number of 

colors from 2 to 4096 

Print, animate, transmit, store, or 

manipulate images with available IFF 

compatible programs 

Digitize in all Amiga resolution modes 

(320x200, 320x400, 640x200, 

640x400) 

"Digi-View sets new standards for 
graphics hardware "-InfoWorld 

Digi-View is available now at your local 
Amiga dealer or call: 
1-800-843-8934 

ONLY $199.95 



MK BaaiBasB i 



NewIek 

INCORPORATED 



5lW3 BESS* 



A 



mazing 

* COMPUTING" C7 



Volume 3, Number 1 

CONTENTS 



Amazing Columns 

AmigaNotes by Richard Rae 

Digital music generation on the Amiga. 



51 



C Animation Part IV by Michael Swinger 54 

Just when you thought it was safe to go back in the C 
waters ... 

Forth! by Jon Bryan 66 

Sorting out CHIP and FAST memory on the Amiga. 

The Big Picture by Warren Ring 69 

Daring assembler language programming: CLI 
system calls and manipulating disk files. 

Bug Bytes by John Steiner 77 

Don't miss the latest upgrades and insidious bugs! 

Roomers by The Bandito 90 

AmigaDOS 1.3? 80386-based BridgeBoard for the 
A2000? and more! 

As I See It by Eddie Churchill 91 

Opinions, observations and the birth of a new software 
generation. 

68000 Assembly Language Programming 

by Chris Martin 93 

"Create a multi-color screen without using Intuition 

routines." 

Modula-2 Programming by Steve Faiwiszewski 99 

A new contender bursts onto the Modula-2 scene! 



The Amicus Network by John Foust 

Public domain update, Commodore politics, and 
developer info. 



Amazing Departments 

From the Editor 4 
Amazing Mail 6 



117 



Amazing Features 

Amicus Network Special Report: Fall COMDEX 
by John Foust 18 

Commodore at COMDEX and new products. 

The Ultimate Video Accessory: Part II 

by Larry White 36 

Spice up your videos with quality Amiga graphics. 

Life: Part II by Gerald Hull 45 

"A detailed look at efficient use of the Amiga blitter." 

FormatMaster: Professional Disk Formatting Engine 
by Carl Mann 59 

Put Batch language to work on the drudgery of disk 
formatting. 

BSpread by Bryan Catley 79 

A full-featured AmigaBASIC spreadsheet you can 
program! 

AmigaForum Transcript ed. by Richard Rae 111 
I Zoom in on Commodore/Amiga's Dave Haynie. 



Amazing Reviews 



Haicalc Review by Chuck Raudonis 8 

"A straightforward, easy to use, functional spreadsheet." 



VIP Professional Review by Suzanne Mitchell 

Easy stock portfolio management on the Amiga. 



13 



Money Mentor Review by Stephen Kemp 24 

A personal finance system beyond your checkbook. 

Investor's Advantage Review by Richard Knepper 28 

plus "Poor Man's Guide to the Stock Market." 



wmmmmwMMmM^MMm&Mtiimim. 




Public Domain Software Catalog 121 
Index of Advertisers 126 



35mm SLIDES FROM YOUR ARTWORK! 



AMIGA 

| :.,..:- ■■■--. 2 TRU" 




IfTlflGE 



r~ 




J 


kd 





Professional 35rnm Slides 
<j> Now you can have reproduction and 
presentation quality slides of your work 

<S> Distortion— free — fills in raster lines 

crisp bright colors, converts all IFF files 

Now 

CustoM graphic art and Illustration. 

S1Q each For* your* 1st to 4th slides. 
5 to 9 slides- SB. 50 
Oven 1 EJ. slides-sa.DO 
Add 52,00 Top shipping, 
NeuVork residents add sales tax. 

Call [212) 777-7609 FOR DETAILS 

Ask for llene — or write TRU-IMAGE 

P.O. Box COO, Cooper Station 

New York, N.Y. 10276 

fen*] j .l j 1TJd**"i ir% c I ^->-i --r-^v • ->.— .; a 




Publisher. 

Circulation Manager. 
Asst. to the Publisher 
Corporate Trainer: 
Traffic Manager: 
Managing Editor: 
Submissions Editor: 
Hardware Editor: 
Music & Sound Editor: 
Art Director: 
Advertising Manager 
Senior Copy Editor: 
Copy Editor: 
Amicus & PDS Editor: 
Production Manager: 
Production Assistant: 
Production Assistant: 



Joyce Hicks 
Doris Gamble 
Robert James Hicks 
Virginia Terry Hicks 
Robert Gamble 
Don Hicks 
Ernest P. Vrveiros Jr. 
Ernest P. VivehosSr. 
Richard Roe 
Keith M. Conforti 
John D. Fastino 
Michael T, Cabral 
Karen P. Granger 
John Foust 
Mark TNbault 
Rico A. Conforti 
Keven Desmarais 



Advertising Sales & Editorial 
1-617-678^200 

Special thanks to: 

Lynn Hathaway 
Donna Peladeau 
Traci Desmarais 
Pilar Medeiros 
Donna Thibault 
Betsy Piper at Tech Plus. 

Amazing Computing™ (ISSN 0886-9480) 
Is published by PIM Publications. Inc.. 
P.O. Box 869. Fail River. MA 02722. 
Subscriptions: in the U.S. 12 issues for 
$24.00: in Canada & Mexico. S3O.00; 
Overseas: $35.00. Printed in the U.S.A. 
Copyright© 1987. 1988 by PiM Publications. 
Inc. All rights reserved. 

First Class or Air Mail rates available 
upon recjuest. 

PiM Publications, Inc. maintains the right 
to refuse any advertising. 

PiM Publications. Inc. Is not obligated to 
return unsolicited materials. All materials 
requesting return must be received with 
a Self Addressed Stamped Mailer. 




POWER+SIMPLICITY=PRODUCTIVITY 



Feei our POWER.. . 

PRO*NET: 

• Variable template size 

• A to E paper size 

• Extensive Library included 

• Auto device number with Zone control 

• Gate swapping 

• Single click change to negative logic 
■ Innovative weight assignment 

• Auto page reference 

• Dynamic error checking 

• Creates BOM, Spare Part List, Net List. 
Error report, etc. 

• Supports printers & plotters 

• Supports Laser Printer 

• Sack annotation from PCB layout 

• Move. Rubber and fats more 



PRO-BOARD: 

• ,025 inch grid 

• .001 inch grid Library 

• 12 mil trace, 13 mil space 

• Produce 1, 2, 4 layer PCB 

• Provides siik screen 

• Auto coordinates assignment 

• Auto produces power and grid layers 

• Single line auto route 

• Optional Net List Input for guided route, 
no need to look at schematic 

• Prioritized route 

• Dynamic error checking 

• Supports printers, plotters and Gerber 
photo plotters 

■ Copy, Repeat and lots more 



See our SIMPLICITY. . . 

Intelligent Function Keys make our programs extremely user friendly, provide maximum screen area, always display all 
relevant commands, avoids excessive cursor movement and screen Hashing between menu & drawing, guides user through 
operation, minimizes training time. 



VISIT US AT L.A. AmiExpo 
WESTIN BONAVENTURE HOTEL 

404 S. Figueroa St., Los Angeles. CA 

JAN. 16-18, 1988 

ORDEFI OR CALL FOR DETAILS 

1B0B W. Southgate Ave-. Fullenor- CA 92633 

Tel: (714) 447-8792 Telex: 5106016526 PROLIFIC CALIF 

Western Union Easy Link Mail Box 62935949 






TRY OUR DEMO DISKS FOR $15 EACH. 

Also from Prolific Inc., 

4 full feature AMIGA™ Macro Cross Assemblers 
for Z80, 6809, 8085 & 8051. 

See our SIMPLICITY 



PRO-ASM 



Feel our POWER 

■ includes multi-pass Assembler. 
Ltnker, end Serial Down Load 

■ Generates relocatable Object 
Code Module 

' Nested Macro 
* Includes Files 



DEALER INQUIRY INVITED 




$85.00 



Feel our POWER 

■ Conditional Assembling 

• Rich set of directives 

• Global and External Variables 

• Data format includes Binary. 
Motorola Hex, Intel Hex, and Tek Hex 



AMIGA™ trade mark of 
Commodore Inc 



Amazing Computing V3.1 ©198S 



From The Editor: 



Hello New Amiga Owners! 

This issue of Amazing Computing™ 
should be seen by more new Amiga 
users than any previous issue. The 
reason is the increase in advertising 
produced through the Christmas 
season by Commodore Business 
Machines for the neatly packaged 
Amiga 500. The Amiga 500 is appar- 
ently Commodore's choice as a high- 
end "home" computer. 

Although the advertisements appeared 
to concentrate heavily on the high 
graphics of the Amiga 500 (spelled 
"GAMES"), many consumers have 
been able to look past the obvious and 
view the Amiga as a tool for all types 
and styles of creativity. These new 
users arc seeing the Amiga with many 
new word processors, sound digitizing 
and music tools, calculating programs, 
databases, as well as graphics software 
now available. 

The Amiga is a complete machine, 
offering many uses in a variety of di- 
rections. Whether you are using an 
Amiga 500 or the highly expandable 
Amiga 2000, you have a computer 
which has the opportunity to expand 
with you. But, nothing can happen 
until you know your machine. 

Learn CLI 

In the first issue of Amazing Comput- 
ing™ (almost two years ago), we 
published, for the first time anywhere, 
a directory for the Command Line 
Interface. We followed with more in- 
structions on moving through the 
subterranian layer of your Amiga. CLI 
is not simply an additional option for 
your Amiga; it is a serious disk 
operating system that lies beneath the 
casual and easy to use Workbench. 

There are still a great many Public 
Domain Software disks and commer- 
cial programs that make use of the 
CLt. Even a simple file save, or 
directory search through a word- 
processor, requires a minimal knowl- 
edge of CLI. 



Understand the Entire System 

Do not stop at simply knowing how to 
master your Amiga's inner workings. 
You must also fully understand the 
workings of software and hardware 
peripherals. Mastering a new environ- 
ment is what drives many users to 
spend late nights in front of a com- 
puter screen, and what inevitably 
causes some users to place their 
machines in a secure spot at the rear 
of the closet. 

Becoming proficient at anything takes 
time and energy. Since the Amiga is a 
"personal computer," that commitment 
comes from you. Understanding will 
be a result of you learning a new 
approach to an old problem. 

Define Your Problem 

Concentrating on a small nusiancc, 
which the computer can solve for you, 
gives you incentive to complete the 
task. Establish realistic goals and 
understand both the problem and your 
tools. 

Some of the easiest, yet best, computer 
uses for a beginner include performing 
a list of activities, keeping a simple in- 
ventory or producing a small monthly 
mailing. By selecting a small problem 
and working through it, you will have 
shown a mastery of the Amiga, even 
on a simple level. From this success, 
you will want to attempt more 
difficult solutions. Be cautious and 
choose your problem well. Choosing 
increasingly difficult problems estab- 
lishes a series of problems, solutions, 
and successes. Remember, "Nothing 
yields success like success." 

Involve Your Family 
The term Computer Widow (now also 
Widower) was coined several years 
ago with the first big push of comput- 
ers into the consumer market. Men 
and women became so involved with 
their new toys, they fell victim to a 
narrow vision of the world. Their 
hours were spent between their com- 



puters and all the things which got in 
the way of their computers. Spouses 
and small children beware! Naturally, 
this did not yield open acceptance of 
the computer by family members. 
Open resentment of the computer 
resulted, with a constant distrust of 
any new software or accessory, no 
matter how ncccessary. 

The simple answer is to involve the 
family. With the Amiga, there are 
many levels of activity and ability. 
From simple music to advanced MIDI, 
wordprocessing to page layout, 
playing arcade games to designing 
arcade games, paint programs to 
CAD/CAM systems, simple spread- 
sheets to advanced relational data- 
bases, the Amiga offers the variety to 
keep any member of the family 
occupied with a love of his own. This 
will, however, require users to share, 
which can result in even more prob- 
lems. 

Involving other family members 
transforms the Amiga from an intruder 
to a family activity—a point of interest 
which can spark even better under- 
standing between family members and 
create a reservoir of Amiga specialists 
in your home. 

Amigas were developed as problem 
solvers. They arc there to make living 
easier, to simplify tasks, and yield 
enjoyment. To use these tools, we 
must have a clear, uncluttered under- 
standing of the tool, the problem, and 
our solution. Computers not only 
make people more productive, but 
they can make us better people. 



Sincerely, 



Don Hicks 
Managing Editor 



Amazing Computing V3.1 ©1988 



Amazing Dealers 

The following are Amazing Dealers, dedicated to supporting the Commodore-Amiga™. 
They Garry Amazing Computing™, your resource for information on the Amiga™. 



If you are not an Amazing Dealer, but would like to become one, contact: 

PiM Publications, Inc. 

P.O.Box 869 

Fall River, MA. 02722 

1-617-678-4200 



fiasuCi 




Fnj-twnji' Con-pLTfer CarWi 


Moorcn 


UllHTliHI"! 




Veag Co mpuaar fcl" 


HVHkWrl 


teOHjjnl 




Aeon DtiaSrita-na 
Aat*m*BookSbra 


fSjrrorr'a 


SorrfeniniCny 


Orunga 


CLoCompuw 


ComCfidoa 


VWjao Computer CfW 


ftorr* 


F1aySuno*rh:. 


Soutn Bunngton 


Tune oil 


SafalWI Kangaarn 


[UiWTJU' 


0#4M 


Bod'ora 


VWjoo Corvtecaon 


Scnonactedy 


V-'Otma 




C*nn« CMpUM 


b'-'T-.i- 


SpOcruffl Carnpulan 


Nowltowi 


DOT 


Wl am ream 


MUgpi Cornrxrvy «r*C 


Maw York 


AaflH 


Ateunari 


E«**s«a Bsulcua 
Mai Tor Gomf ...^ col on j 


Hoavar 


Tncafn Ci*a.»i'i 


nkuT Wnoham 


Qnvi Can-puir S"j-o 


Ftarnngham 


Wona Compunni he 


hfrCKIYHa 


Qikovary 


1 S 1 CVff! 


McO*4 


DtBI 




HCSCan-puW Cantor 


Mflrjnlaa 


Ham Cg pjna 




Farrly Compular CarrB' 


Fateboi 


U»1 P^OV ft Computer Shop 


Wen^OTPBT 


CasH Mom 


Hawa^t 


LCA Vosa A Corrpuw- Cr. 


Norwood 


C? o! Ffcckonf 


l+ck»7 


LO Computer 


Norbk 


Ur ■ w: r« Computer System 


Mob4a 


Pyja 




Memory Locsian 


Wem«r 


Dgta 


FteBcjn 


SbToraraConra 


Norbk 


■* /l " i y-M 




A A COrtEClar) 


JaauonM'ia 


CrnniTa* Crj^a-Tars 


low«!ra.i-)f 


KiS Nonnigjrd 


O'^T-ITOrtJ 


Solwara Crty 


Ftenr" m 


C*npi.tei-"BrI 


UcuntanHDiP* 


CommoOO-e Col^Sti Inc. 


Pintcaa Pan 


PtoMor Vaey Dsca EojCitTarit Amharai 


K1S WlWHBfO 


Kor^Onlvla 


V-rgii Mem Syiii- 1 


Modbrklga 


Tha Mcra^nop 


LTkl ftow 


CarpLTir i'u- 


Parmacsa 


SoFcrg 


Burtngbn 


K&5 Fonnirand 


M F* Ion -Saam 


Waa^-aTon 




Th* G< Sra-n 


Drvuwviio 


Compuvar- EVua 


Sivnan 


TtaEttEbcMl 


VrOOlNowIon 


KIS rami tend 


WrananSalam 


AP.P.LE.COOP 


Ftamiart 


Tha £*S:onj 


Janaioora 


Compuuir Imaga 


U'ami 


Th* SonwAr* H*J4 


Ouinqr 


KiS Mom, aofl 


WrjionSaan 


fltuMn Vtatey Computan 


E.Wanaldtea 


Iho £4 Sum 


NonnLnaRiKK 


Carnpuw Saaaalty 


■.*!:.:.,-.: 


Trtoniiftfi. 


piEnted 


SelTmw Cry 


Roaigh 


Bflkngnam CompuHr G&niw 


FVjiingrtem 


rVJfflfio 




Carnpunr Tormina Inc 


Sowing 


Unina 




SoRwuni OTy 


Chariotte 


lis, Ftytei and NoChh 


SpOkan* 


Computer LI bray, Inc. 


Tampa 


CoTipuTJora 4 ftani 


W Palm Haacn 


Comoaur flam 


hji-m-i-ci-j 


TDSComputeri 


Durham 


DliI Dag Nawi 


Soartn 


CemjsjarWaiL 


PhooriuT 


COrnpuHP* Plul 


SLOoyama 


lianas On CorTpuvng 


WaiccrcKM 


Tf^fl Compunn 


WlntEOn SdOm 


QyteWoru 


Kan 


Computer War U 


Oitxim 


CatranCi Inc. 


Sta«ar\ 


Flablo SnacR AaiDcawSmnu 


Jay 


Mtwr OUKOB 




Computer (■...-.--.-->: 'j,-.- . l;-| 


Qollngnam 


:".-;■■;■• ■■■!i-.i bus ■■:'(- I,,-'.,,-- 

Mefcn 


i Phaenli 


DtCaBaao 


Oajr/h 


Mei<iap 




CompuiU' AlkKiate* 


Fargo 


Computer Ouui: 


Eomonoi 


T 3 1-30 


t<zjza: ■;" Camputari ! "r- 


TBanawa 


Box-c ComouBr ConBi 


Grand PiOpdi 


O.F.ComovBt 


Cv ana Forks 


Computent i Inc 


I acoma 


ncr ,v-- ■,---.- ■■ [i .; ■. .- 


Tucson 


F*n ly Computarr 


Svun 


:-1 ■- ===■»-.'■" «=.f^ 


Fteixwuay 


Trw Computer fiaate 


UnM 


Computers and Msva Mhigc 


Yon ma 


r.fl , 'ita» j i ! » 




Fif»nVu Book Sura 


aalna*vi:ar 


Canbn Computet 


Carrjin 


Onia 




fwrij Computeri 


Lynwood 


Ml|I 1 ■ j;-f ;■-- l 


Fntr Crnr 


Itg&'ii-B Campion 


MU»7 


PlWfirTnE 


Kaon or do 


(::■-:■.!■■ r-;vi^ ■ 


ntewan 


KAOS 


Norttean PajTitu 


Ajjno: 


F Asm on: 


Jaal Mawi. Int 


Hbanj 


Dfta Aoshi 


Lanarvj 


CompunrSite 


Covrj a.nrj 


hrybbtei 1 Bytes 


Taooma 


EUsoBO'kM S..wi|- 


SonCmsgo 


Kit ■:..:■■■:■.-'■ 


i fnii'.a 


Edm^ibin Carnpuar Cankr 


Pontac 


L * r n hi ahem Syi ami 


CokiTiCut 


On-rs Imarrtebsnal 


Soon* 


Bin Pacai Camp Prod. 


Anonarn 


Uanapart :.':; ■ L ■. - GatM/ 


W0AC4 


Qobd Compuap Co-vj* 


Daartam 


Faifoorn Ktertte Computer 


Dayun 


Progromi prm 


Sooflla 


frown Knows Campulng 


Ha i .-.i- 


Mcni CarnpvW' Canw 


Lvgo 


Co^tmi Pb>^ Co^npLitori 


Oomai 


Lanas Cofteumar EteCTorvca 


Akron 


ElOB Trrna Syiteml. 


Saana 


' > : i F OODry !.:-',ii'T 


Salngs 


HHt Aga Ltactonci 


St PaajTirx*fl 


Mt ■> : ..." S ; ■-* -r 


MM 


Uatn oeca Suppy 


Cainceun 


TaaaAByte 


Karraarrck 


Gantry Computer System 


La Macro 


FTognjn SB 1 * 


Claarwaar 


Hd ana CamnuRtrSnap 


Ud-arc 


l*ert Canter 


Caijmtiua 


tafjaajrataj 




Ct.ic'lta:^ 


Lai Angoras 


Hondom AeoauConpuB'i.Inc I :.-.-■.-;- F», , .-■ 


Pm W»a 


Ohamai 


Ucmirjiit Moc^c 


Firfed 


Gonimn Cor^puuTt 


Rpon, 


Cbewol Battel 


Lai *-- > - ss 


Salens Cbk 


Cranga Pat 


Pragrf.T<9 U-n; -- jM 


lOaruPuoM* 


Norfi Coail Programm ng 


Wloughby 


Co—puior Sortjrara Canair 


Utwajkoa 


Com m boom Land 


Alhafflora 


SaVamSa^ront 


Rone an 


PMaon'ara r*r*sc*-a*' 


Lananrj 


Ptr%sra. Computer Co 


Yo-^ngjDlr" 


Fat va-ayParsona Comaukir 


OsmDin 


CaraaHOjaJi 


NolanaJC4r 


'-- . - i'i At ->.!"->?.. f : 


:■;_-->.! 


".:*-t- -- CampimrSlsra 


Warran 


poDjaj 4 y>* 


Trltrt 


Mtom 1 ! iCamputeri 


StevoniPon 


Cavojunti 


Lsi ^-.7" <:■• 


ThaOwnOoff 


Cccaa 


a^ppacTDMk 


V .-t;-FI.. ,-.i 


O.k V CompuBr A{)pKaian 


Touco 


FKrwflfteaa 


Mod son 


Corn puaaf Arte; 


Pao *.:: 


TnlPC CoiaClon 


Carol OatMi 


Scaca t3 ~ : - >. : •■ 


Lrvcm.a 


Saiten CorrpuOF C*na> 


Sonoxaicy 


TMWSontearamc 


Hlsuaau 


Cj— JLtar f>l*r 


W™ 


Cci^ji 




SteM Spool Corrpuanj 


Ann Arbor 


SorBa*^ Ca-'.'a IrrOKfVEana! 


NonjiOmiaw 


Wnrarr-ng 




Compear Nook, (nc. 


Sal BaJMellH 


FvW*Srl»Tt 


Augjrjta 


TJ. ! - 1 tt ■■ : -s 


Of ten 


SartenMi and Mora 


Ciflemnai 


Byte 1 — por: jr~ 


Isra-a 


Computar Gut*: 


St^Otga 


Sela.viSouttlnt 


Savanroti 


Trai 1 Coo Canractir 


CDa 


ScfWH Oy 


Carntrvi* 


QaTJoal 




COr-TtHPlX-JI 


SwHtM 


TnaWSo-a 


A ,j~ , 


TnaSanjWiranauaa 


Kaiamuoo 


5c.hHrar» ConnacD'On 


Maylaai Irn. 


Com^jute or Ptey 


Alsarte 


Cc-'cu »' Tlmo. 


OrutHa 


tjaajj 




Vt OfcM Computer Srnpca 


Vpaiant 


CVirBTii 




Ctoaajuteaanajpj 


Albarte 


Com&.wlt'X] Fajmarrt 


Fwmoni 


Airs C;- rt. ;,-■ i i Elacn^cj 


AJait 


IfcOMM 




Corona V<ouc 1 Gompurar 


Barsaivlla 


COmCuterSnOll 


Albark 


Coronal Mwiiano 


Ocaamo* 


CarnpLitar Flauia tnc. 


K*r>0liXl 


Coi-npulari. at 


Eagon 


Mcro In Computer 5»i 


TuHa 


Otite Pro 


Albarte 


Doner uj 


Wem*y:i9 


JAeRaagfl 


Ah* 


■oTITIilTalWt 


UodwDp-om 


PC loch 


Tiisa 


Computer Shop ol Caigary 


Abarte 


;>, ■ e^HCMn 


LagLP^Aaeocr) 


IflJEO 




MCDnlHS&nB Inc. 


Hbang 


Sacord Hand So Iraanj 


V- l -;—.-. -Z-.-7* 


Tna SohMrora Houaa 


A«Mrm 


Qseajnt Computer Salon Inc. 


Long B«W^ 


A.B.L Cotvm.1v & VIOOO 


Ndrnpa 


Mdwait C:-slm' Swieas 


Ctearwater 


Video Camp Inc. 


Loonon 


Hnosn Campusng 


Aitwm 


Empr* CompLjijr* 


s.-i-T! risii 


Ba-ia Compinar A v.ii] i-r_ 


F3a>M 


Snndgri Ftood Mora 


•VOnnaapOI'l 


Lm.-zzr. 




Pted Door Ucra 9ysBkms 


AJbor* 


ECK Computer Co. 


Wanut&WH 


lliau 




Spaoa gtt l>M 


FtofMini 


Artrjiamoo* 


La&onca 


Maateay Land 




Iter* ng Way Nows 


Sucnon 


A lli ruini 


MocuFon? 


Vol torn Inc. 


SaiMraw 


CteMOi howl Cortur 


5ok>m 


Computer King 


(ViunCoumbii 


rttenrrcraon, Samiw I Yai.nrj. Inc. 


Con^jUrlimd OVIura 


ParxFUdaa 


Mnilm.lnrt 




CioOKomo* Compu*f* 


Boawtan 


Conn 


Uncsh CaumUs 




P—*—! 


ComoularLand pFNMi 


NM| 


NatonM Computer Camar 


Ootan Sprinoa 


Clan am oi GampuM"! 


CxuMTta 


MiM 


Bnuan coumbu 


Itoma Computing Cniir 


Concord 


ttgaentm 


AcHnon 


IfMJHJMj 




Com pu ran Buainai ■ Sfitemi 


Parnano 


Spflta 


On lift rSMnbal 


l«nw CornpuEng Cantor 


Mil Vnior 


LC-V. Da« Conui inc 


Wt L nnda l a>n 


AiioDotad CampuBrSa-rvleai 


Soring fau 


Powali Llooki 


Pomona 


St/oof 


QntgnCokumbji 


'■' I •■" Computing Cantor 


San laanAD 


lirnJ Uaacampuiai'i lie. 


Naponrika 


F3nno* u*i CompKaim 


KantnOly 


Powail Tacn 


Pomona 


SupM Sari*B/a 


On»n Coumrx* 


H3-I.1 Com put ng Onir 


Sa-v9r\iOfl 


Krccnl A IV-I--.1-51 


Chicago 


Dib fc>rw Cvnstiw Co, 


Si. Lour* 


Fven Cigar Star* 


Pomona 


Canaaan Computer Era 


Uonsiaa 


KTEwcKjna 


SuvryvilA 


MoHjOfaj 


OaHaMnn 


IntBmFtopavLiX 


Cnaiterrww 


:■-=■:■* --■' ! TO .11 


Eiiosno 


Mtcoman 


Uansiba 


K J CotpliBi 


Granaai FUr) 


SolwAna O Syaarni 


Firwwlt). 


SfrBmiPiJi 


rnaapantervai 


Parfliriyan* 




Corn pukrW one) 


Marstaba 


Imvtf 


KloTnhtaliywsad 


Sa'arara Pui 


Whaaing 


Svaemi Pila q! Si LioJb 


SLLoiii 


AjprteOmagpEeE 


Wwrei 


J.W.Man 


Mantaba 


L1C Computer! 


SaTDi Arm 


Sa-arnn Pvun Vib>: 


Han paji Park 


ib^aa 




Banc Computer %aiami 


Itermiiaga 


KDDatak 


MOnlljl* 


bVcro Figm 


San Jaana 


i'Vj Ur-:-, lii."...- 


Boarningbin 


Appaicran Computer Siiirf 


OaalFara 


Chas k) r Courty 8ook Ca 


WeitQnaster 


MrMwnp 


MarsyjlM 


UTS Inc. Jrjwar Books 


Saero-nofTto 


!>- c .: CanpLfkp 


SfeKtng 


"Btrai-J 




CWM Computer 


Eprnte 


nften 


Otarro 


Nor agsn Sontewo 


C) Conib 


tr-gapj 




BLULSEYt 


LkCBkl 


Downngtain Computer Can tar 


rtaaaitetetearl 


Crater: Computer 


O— J*"3 


OpAmpTi«j> booM 


Lai Ang»vi 


FVu: CwTp-w c». 


SouP Band 


Uy Camint 


PiaTirnOuV 


Lot! Co ail Sartaram 


Iterrnory 


Camputenand 


Ontsro 


'"*»i MnrtraVkl 


:vnHf.;j 


Byrai Df Angora 


Angola 


Ooucm{ ESaenrtci 


Omar* 


Fiapoy DMA 


Mocnonictou/g 


DaajaHOE 


OnanO 


■•-■ i EKWU 


Fteuwi 


CamiUlar Ccnai 


FanVWarna 


HBaalC 




Gana'iBoDU 


hng ol Pruuia 


Eaeiooa KQ- 


Crrairo 


Ami Co-p-m i E iHRrta 


Paati-4 


Campular Camor 


Maron 


Carvy ?! Inc. 


La> Vtegn 


Korr Camntl DhjimI Syiarri 


Di-VB 


IteaangiDate 


Ontaro 


Ftogaoatl Computer Cr. Inc 


naaacravi 


Cd—pLiJai Paspa Inc. 


Mchxjan Oty 


Com puw Wand 


Laa Vagal 


PifiMourgri Computef Stem 


PrtS burgh 


Tra Computeri. Van 


Omano 


TasryirTi ntews Inc. 


Sa-raFlaia 


G»ag Cnanar 


CroorrtaM 


Tower HocorcB 


Lai Vagaa 


TroLngMr Computeri 


Indona 


TnomniJ 


O-taro 


EOS Carreuters 


Loj Angatai 


haantHain 


it »-■->» J 


HmrHar-a^-w 




BBOJJmdm 




SatenCa 


QjoCoc 


Sorta** Fit! 


SaTiaFlaia 


Ucn) CaniDutor C«-ln Inc. 


1 nO 0-499 1 


DMcrilad Camsujori 


K«ft0 


Ucni Umia 


SmiCihM 


rtwariHrWoTi 


CuaCac 


Satonr* C#v 


Amanjon 


ScOCTftCrjTpuDrSrl.InC 


Evanrvt* 


H^ In-^pj 




UetUmii 


*v&w<* 


Uorooai 


CkojOK 


So^a* Carrote 


FHuOana 


Vans Camauovi 


Waitlak«ram 


Foniy Con-outer Ca-rai 


SoutnOronna 


SorMote Connocxon 


Warwoc 


Into MffOjor 


Ouane 


Sorrwar* Piut 


C-"^--;. 


lawi 




Uona Caunir J". -~ :~iv ■ 


Crantef 


■rayr C|nj "a 




laoojuoi 


0"*c*c 


Tho BoaktmiT/* 


San F'ancact 


Ctznr. Campum 


DaiUaina 


1*1* LfcllTJ 




Awcom kiamalorallnc. 


WOntCoUrnbii 


V* w TrprMiL* 


a*e*c 


Towar Books 


Chca 


Mcra CampiAv Apo<ca1topi LTD ManrnaJFtawn 


rtera Ftruom Compute' Svlbrr 


i AmogonM 


HaAan 


Groan*** 


O-IVCulerv Viip.0 


OuoDK 


Too*' Books 


Cancan] 


Hun 




PaaoOa r+miind 


AjCuQu*rqua 


Mcnl CarrputerQaoot 


Sumo* 


f>ttFr.j»ninCa-anir». 




TagmBMtm 


Mountain V*w 


J I L Enctcnca 


Llbarol 


TacnnoiBpc* ConcapCa 


Lai Ouch* 


Sarnvara CiFy 


Sparrow rjurg 


Ingram Sotura-a DitriOuay* 


Cancgrrj. I :*-■ •■ j 


Tmhi'OooM 


Sacramanri] 


M<Kant4l Co^pJVff 


MWtlOn 


hb»Yr>x 




Wauorfi Jawtery 


Cnaaterlaki 


C6TCI, ! [> iL'tJu^n, 


Britain CoumM 


Towar Books 


Secramanu 


M,i -v. - : COrnpVbnj 


Mann anon 


AnvtO 


Now Vow 


SaLJ.DiMJ 




Pno** « o«i »x: 


Cacary. a m-u. 


Toaar Books 


Sacntmgn'J 


SMinMOki 


O-trlOrtO Porn 


A.T»ca- lifliBn Vatoy 


Wopongon Fan 


Computer &i*l nail. Carter 


FUpidCrry 


^■Jl>n-ni t 




Towar Bo oa 


SsnUssa 


ijBMBM 




AiTkga AainaH Gomcuter 


NomPon 


Tanmmpia 




LogfcCompuior 


Buanaa Ansa 


Tha Computer Room 


SbKb Vatrar 


COfT.pjW r>fT»rtnon( Inc. 


tomngtan 


(V»Snop 


Mofkr 


Computartab ol Usmphja 


Mem phis 


pUaBjkj 




Wamor ILnghaarlng 


SenOogo 


Coropu»f SBfl oFKonuctry 


Lavrtvlilq 


CarnpufrH Carter 


WriBPtslni 


Tr*6*S-J>ni 


FJantte? 


Camputennarl 


looc-rjnfiio.WA 


Wr>rw^ OrcM 


FJarHlsv 


Hiiviay Cooka 


LDuavUh 


Computer OuOal 


Jamoilown 


Jajju 




Dukwvki 


Qroanwlch. NSW 


WsrdUaMl rWtet 


Has- ■?■*;.->:: 


Ftai ry Wo>ld CompuVri 


L sj -ij'ri 


Computer Paaco 


F*d»n 


Oooxino 


Flout ion 


FfgM TOCfirtelligy computer Suppiai 


QfltOntt 




LflJU'Ofn^ 




Computer' ■ Efc. 


SyrocuH 


flyto W«p 


MQaJn 




[trtgritan. Uabrjrn 


KJ/VM nbMHWn 


Aunjnj 


Corpum* Tlma 


Svavapor! 


Comurnonj Jk'rwi'ni 


Cow* at* 


C.EM, Corporrnon 


Urjuoni 


Jatfm Vn~iart i " 


Cnwofdteo.WA 


1a--3" TKnanpbuIng 


F ■-,"■* --••' 


Uomm IVilmu UoChnai 


MaUna 


Crwnland Irtt 


cMWyn 


Cflionoi V«wo 


llOLHlBFI 


Malawi Omca Eqytpmarrl 


AOODBtani, Ma bum 


OWU Compuani 


Ccr'iBi Spnngl 


Sanwaro Corner l"Vi— uin-t,' 


Ua'jtn« 


Lalgrii Compubri 


NOwVerfe 


Comcuter Ago 


Iki ui tan 


Mrjgodik 


Lara Cow 


Computet OiKOunt 


Da mar 


So'vtam SaH/Mn 


Dolon. Hcxqa 


MVteMOnrca 


NornPari 


Computer Ago 


Dalu 


Magonncs 


lsnncova,hLSW 


Computer Room 


Aufflr* 


Sa'wara Saurca 


Labvnmi 


N U Li S Computer Cataar 


Oronj 


ComoMter Mage 


Auion 


BBJI oTpajli 




EoonPsrscro Computers 


AuTira 


Tna Bat Srroll 


3*3*1 


So'tearri Cc-rn L:-je-i"r*W* 


FonH'.Hll 


FMSComcuter Sorvcci 


ToxarkanA 


Aocuia Fauaa i Sons 


Dam an 


Loan Computer WorU 


Fart Cd lint 


Tha CampLfW C- ' i 


LaarroTM 


Sonteara I Hj=h 


Scoia 


iA::'zfxi : .;-* Comfkitir 


AfctteButean 


BnaTlanl 




HuimniJ 


Laanrood 


Mw^nn 




■WHtewCBI 


FOrgJIt+l* 


McnjSoarri 


Ftoiarsn 


Tha Amiga Cara- ol ScoSand 


Eclrta rough 


Sun Cckrrj-y Cot plow ■ 


Cebrada Sprngi 


tVi«OTraaivW 


Ftacwa 


Sonwani SuwrmarMat 


To-awsrdi 


Sohtaate L0>ary 


Wicnrn. Fta 


flwaoan 




pfi*i^tf -fij! 




CDrrpuvwara TOOAV 


■::.l-'« ■-:!,— 


Ste-'Tocn Sjn tori 


Uooong 


Sonwav Tar-rna 


FoiWonri 


FAcnctos Poo- son 


Lund 


ten Lite Quo S'jf« 


Harib'Q 


Corrpuwi on Wnon Canrtar 


CoUTiba 


Sy-'a-O TnpC ng 


rtewYo* 


Tha Computer Eiaarunca 


Son iteOjoraa 


oMttrtoPd 




Am^a busnaii Cor-pute' 


>.;.-«.,• 


Lat/rai MaaaaaanJ 


Kanr*nnpon 


Eooowi 


r*W Vpn. 


Tha Computer Step 


Abiana 


So rw ar a Lone AG 


Zjanch 


CampuarCXrpal 


PliVaman 


Men tarnpuw Canvr 


Haomoni 


ToO-ow Bu? ncjH P-=OJia 


RocnHter 


Ub 




Wait Par-a-* 




1 'am r Computers 


PlanatUa 


So'wim Aavamaas 


llacr/ ■ 


Tna Computer C«llar 


Aiponf 


Cam Guars Pul 


Murray 


Ri ry no w 


hutm 


Unomnrwa Inc. 


Ncrwof^ 


11: '■*, .i >i N Thnan 


": ...j. !■'.(•* 


Iho Vrohng C; - .-» '' - 


Stonoy Bra**, 


Magtr ran wti GTa 


SalLakaQt/ 







Vtojdari Computer 



Amazing Computing™ is also available in most B. Dalton Booksellers stores, B. Dalton Software stores, 

Crown Books, and Software Etc. locations. 




$95.95 



Money Mentor 

has a 

New Engine 



Climb Aboard the new "C" version of 
Money Mentor'" tor the ride of your life. 
Speed is your ticket to faster data input and 
dazzling graphics output. If your destination 
is better control of your personal finances, 
there's no faster way to get there than with 
Money Mentor'". 

A unique system called "Smart Scrolls'' 
handles a diversity of tedious data entry 
lunctions and can save 70% of the typing 
typically required for entry. 

Money Mentor'" features: 

• Net Worth Statement 

• 200 budget categories 

• 30 integrated accounts: checking, cash. 
saving and credit cards. 

• Elaborate search routine allows editing 
of transactions according to your 
specific guidelines. 

• Automatic check printing. 

• Automatic Account Balancing. 

• Colorful graphic reports illustrating 
actual versus budgeted amounts. 

• Over 50 reports from which to choose. 

Let Money Mentor'" put your finances 
on the right track... FAST! 




SEDONA SOFTWARE 



11844 Rancho Beniirdo Rd; Ste.#20 

San Diego, CA 92126 

To order, 

call (619) 451-0151 



Amazing Mail: 

Dear Amazing Computing, 

I was rather surprised to see that in 
your chart comparing word processors 
("Not Three of a Kind" by Geoff 
Gamble, Amazing Computing, V2.ll], 
you listud ProWrite as not being 
multitasking! Of course, it is multi- 
tasking. It throws up its own screen, 
and is quite well-behaved in its 
memory management. I have had 
VI .2 running simultaneously with 
WorkBench 1.2, Deluxe Paintl, and 
MaxiPlan, each of which has its own 
screens. I have also had it multi- 
tasking with PagcSctter and MaxiPlan. 
I have 1.5 meg (via the Insider), and 
only when I run out of memory do I 
run into problems. Saving to ASDG's 
recoverable RAM disk vdO: while 
running these applications makes 
moving stuff between them pretty 
quick and easy. If that ain't multi- 
tasking, what is? 

Hopefully in the future, software 
writers will incorporate testing for 
memory availability before trying to 
grab memory, so that lock-up or 
crashing won't be the norm for out-of- 
memory conditions on the Amiga. 
Currently I use ASLClockPlus, a PD 
program by Roy Laufer, which indi- 
cates both chip & expansion memory, 
as well as space still available on your 
disks, and date & time in a title bar- 
sized window. Although ProWrite 
and MaxiPlan have such a memory 
display feature, some of my software 
doesn't, so always knowing what's left 
comes in handy. 

I'm a new subscriber, and very glad to 
see the quality coverage in your mag. 
Keep up the good work, and let's sec 
some more Desktop Publishing 
articles. 

Tom Roberts 
Maine 

Although at press time we were not able 
to contact Geoff Gamble, from the 
description of your system, it is possible to 
guess at the problem. Unfortunately, 
there is no real standard Amiga memory 
size. Each system can grow as large as 
the user needs (Amiga 500 memory expan- 
sions are now, or will soon be available). 



This requires each user to pick his 
appropriate size. In the case of Mr. 
Gamble, we must assume he is using a 
"standard" 512K. This memory configu- 
ration surely constricts the multitasking 
potential of the program, resulting in the 
crashes reported. 

We will attempt to divulge the memory 
size of all authors' equipment, to give a 
more thorough view of a product's 
capability. The attempt to have every 
piece of extra hardware to make a 
palicular piece of software shine in its best 
light is difficult. It is more fair to 
consider the user of a small system than 
the user of a large one. We would not 
want a user to purchase a piece of 
software, assuming his system would 
perform as stated in Amazing Comput- 
ing™ , and then be disappointed. 

Dear AC 

I have now read three issues of Amaz- 
ing Computing™, Volumes 2.8 through 
2.10, and have been thoroughly im- 
pressed by the content of the maga- 
zine. Several retail outlets now fly in 
Amazing Computing™ and now we are 
able to get up to date information 
from the States 

The only complaint that I originally 
had with Amazing Computing™ was 
that it was printed mostly in Black 
and White, but you now seem to have 
rectified this. I don't know why you 
seem to think that some people would 
dislike this conversion, as it allows 
you to show the delights of true 
professional graphics capabilities on 
the Amiga. Although I suppose that it 
is similar to the controversy surround- 
ing the colorization of B&W movies 
the industry gave to film buffs, if you 
don't like it, wear dark tinted sun- 
glasses and you can have the old 
monochrome magazine back. 

Keep up the good work. 

Yours Faithfully 

Danny Bielik 

Sydney 

New South Wales 

Australia 

•AC* 



Amazing Computing V3.1 ©19SS 



C who's winning the race. 
Lattice C for Amiga. 






m: Lattice 

Sl~- C Compiler 




Lattice C has long been recognized as the best C com- 
piler. And now our new version 4.0 for Amiga™ in- 
creases our lead past the competition even further, 

Ready, set, go. The new Lattice AmigaDOS C Com- 
piler gives you faster, more efficient code generation 
and support for 16 or 32-bit integers. There's direct, 
in-line interface to all Amiga ROM functions with 
parameters passed in registers, What's more, the 
assembler is fully compatible with Amiga assembler 
syntax. 

More great strides. The linker. Blink, has been 
significantly enhanced and provides true overlay 

support and interactive 
recovery from undefined 
symbols. And you'll have 
a faster compiie and link 
cycle with support for 
pre-linking. 

There's no contest. 

Standard benchmark 
studies show Lattice to be 
the superior C language development environment. 
With stats like these, it's no wonder that Commodore- 
Amiga has selected Lattice C as the official Amiga 
development language. 



Lilt lie is 3 icftlvlcrctl ludcrmjrk til 1-illkc InmqMWJled Artngj Iij trademark mf("nmmt>dur 
Mjni Is jrc.-jiHiirrfilir^JcnufkiifMii'uSiiltwiifSMiLHU, lm 





Lattice* Version 4.0 


Manx* Version 3.40 


Dhrystonc 


129-1 Dhrvstones/second 


1010 Dhrystones/second 


Float 


21 ,20 Sets, (IEEE Format) 


98.85 Sees. (IEEE Format) 




10.16 Sees. (FFP Format) 


17.60 Sees. (FFP Format) 


Savage 


47.67 Sec$./.000000318 


119.6 Secs./,000109 


(IEEE) 


Accuracy 


Accuracy 



Going the distance. You'll experience unsur- 
passed power and flexibility when you choose from 
several cost-effective development packages. There 
is even a full range of supporting products, including 
a symbolic debugger, resource editor, utilities and 
specialized libraries. 

You'll discover that your software purchase is backed 
by an excellent warrant}' and skilled technical sup- 
port staff. You'll appreciate having access to LBBS — 
one of the world's first 9600 baud, 24-hour bulletin 
board services. And you'll be able to conference with 
other Lattice users through the Byte Information 

Exchange (BIX) network, 

Cross the finish line. 

Order your copy of the 
Lattice AmigaDOS C 
Compiler today. We'll 
supply the speed. You 
bring the running shoes. 



Lattice 

Subsidiary ol'SAS Institute Inc. 



Lattice, Incorporated 

JSikis. Highland Avenue 
Lombard, IL 60148 
Phone: 800/533-3577 
In Illinois: 312/916-1600 



A A4 A Z I M G 



REVIEWS 



haicab 






by Chuck Raudonis 



SPREADSHEET 



If you arc one of the many who think 
they could benefit from a spreadsheet, 
but have been bewildered by the 
hundreds of commands used to run 
programs like Lotus 1-2-3 and Ana- 
lyze!, here is just the program for you: 
Haicalc Spreadsheet from Haitcx 
Resources. Haicalc does not claim to 
be Lotus 1-2-3 compatible or even a 
Lotus clone, as is the current spread- 
sheet rage. Haicalc is a 
straightforward, easy to use, 
functional spreadsheet. 



The documentation is ori- 
ented towards the inexperi- 
enced user. It walks the user 
through all the steps and 
functions necessary to run the 
program. The documentation 
starts with a description of 
backing-up the system disk. 
Step one is 'Turn on the 
Amiga." All the documenta- 
tion is that thorough. It is 
written for all three Amigas, 
the 1000, 500, and 2000, and 
even anticipates the slight 
differences between machines. 



The system disk is not copy-protected 
and the manual points out an implicit 
responsibility in this trust. The rea- 
sonable price of this program should 
be an incentive against piracy. If a 
program is useful, support the soft- 
ware developers. If they produce one 
useful program, you can be sure there 
are many good programs on the way, 
if the first one keeps them in business. 



As I mentioned earlier, Haicalc does 
not intend to be a Lotus 1-2-3 clone. 
It is a fully-functional, "Amigaized" 
spreadsheet for the occasional spread- 
sheet user. He can balance the family 
budget or look at various financial op- 
tionsHaicalc is also a well-behaved 
Amiga program. The program 
multitasks very well and an empty 



spreadsheet takes about 165K to run. 
As the spreadsheet is loaded, memory 
use goes up. Even on a 51 2K 
equipped Amiga, you can run two 
copies of the program to work on two 
spreadsheets at the same time. 

In addition to multitasking, the 
program is also multi-windowing. It 
allows the user to open multiple 
windows in the same spreadsheet. 
This capability allows viewing of 
different portions of the same spread- 
sheet at the same time, and is very 
handy for comparison or analysis 



RniDH.l 



DQOEJEi 
ED OS CD 
2DQQD 
0IOG1DJ3 

oosri 



| i ->::>lc 1 


- HllCllC 1.7 IHiiCilt Filts/Iibit I 








'ltif\t tf isinf f wmlis to crtite 




■55S 


1 C 

mini fiwulis to ere) 




■9 


tc i tiilt. 








(rut dom for i iUfU «f print mltiple) 








<HI» ri|M for rot tf i»ti - eolums for JA 


i 


m 


» loul) 

m 


■V ■ 'bH H' ■ 1 b^H- 




JUl.il S1I3.II SKl.il S 


54.11 


5tit.lt 


5221.11 




S43.il 511.11 S93.ll Si 


22.11 


554.lt 


S25t.il 




S45.3J 554.11 585,11 52 


73.11 


53t.lt 


S5.M 




52135,15 5M24.M S777l.ll S 


AH 


St52.lt 


54445.11 




S1Z3.M S2M.il $54.11 S3 


15.11 


588, It 


S23.ll 




SI, 21 SI.5I St.H S 


>3.N 


St.tl 


SI). It 




51.25 52.51 S7.N 5 


>8.li 


$55.11 


S54l.il 




S2221.it S555.lt Still 


55, M 


St4.M 


S3. It 


Sm 


S4Wl.lt SttM.N 5JI57.lt $14 


».ll SK43.M 


S557I.N 




S5I5.23 St31.75 $1532.11 SI 


*.S 


5215.31 


StK.25 


Kixinifi 


52221.11 S5424.it $7771.11 $5 


12.M 


Sttt.lt 


S4445.N 

I" 



spreadsheets. The windows are also 
linked. Although they operate 
independently, they all work on the 
same copy of the spreadsheet. If a 
change is made to a formula in one 
window, or if a piece of data is 
updated, the change is reflected in all 
windows. This option is very handy 
for doing "what if" analyses. 

This little bit of technical 
wizardry is accomplished by 
breaking the program into 
two main pieces. A "Cell" 
task runs in the background 
which manages the spread- 
sheet, performs all house- 
keeping, and maintains data 
for the spreadsheet. The 
other piece is the "Window" 
task which is responsible for 
interfacing with the user. 
The two tasks are interde- 
pendent; the Window task is 
the Cell task's only portal to 
the user. The Window task 
tells the Cell task how the 
user wants the data manipu- 
lated. The Cell task then assumes re- 
sponsibility for updating the data. 
This arrangement makes it possible to 
have multiple Window tasks all 
talking to the same background Cell 
task. Multiple windows can then view 
and update the same spreadsheet. 
This is a very clever design feature. 

Haicalc also supports the full Amiga 
interface. It creates icons for its 
spreadsheets, but, due to the multiple 
task nature of the system, the program 
cannot be loaded by just clicking on 
the icon created for a spreadsheet. 

(continued on page 10) 



Amazing Computing V3.1 ©1988 



GOOD THINGS COME IN SMALLER PACKAGES. 
- — NBttAVATEX1200E. 



W *(J1II? 




TOTAL DELIVERED 
PRICE. 



AVATEX 

Authorized Sales & 

Service 



ACTUAL SIZE ONLY 5" X 6" 



Communication Software Cr CompuServe Access Time with each MODEM. 

Thousands of customers have purchased 
the AVATEX 1 200 from Megatronics. 
New technologies now make it possible 
to offer an improved version of 
this popular Modem. 



We give you a 
great price . . . 

<r TOLL FREE 

i ASSISTANCE 

+ IMMEDIATE 
nn ft/cnv 




TOTAL 
8 LED 
AUTO 

TONE( 


HAYES COMPATIBILITY 
STATUS INDICATORS 
DIAL AND ANSWER 
OR PULSE DIALING 


UtLI VLIM 

+ NO CREDIT CARD 
SURCHARGE 

+ NO SERVICE OR 
HANDLING FEES 


NE\Jv 

CCITTC 

CALLF 
INTERh 
2 YEAi 


r 1200 E FEATURES 

IOMPAT1DILITY 
ROGRES5 DETECTION 
\ AL SPEAKER 
* WARRANTY 


FREE SHIPPING! 


■ 



The 1 200 E is amazing. 
Et weighs less and is smaller. 
It has even more features, 
it's still the same low price. 



nics 




X 0660, LOGAN, UT 84321 



To Order 

CALL FOR FREE CATALOGUE 

CREDIT CARDS VERIFIED FOR YOURPROTECTION 

800-232-6342 

IN5IDEUTAH{801)752-2642 FAX(801)752-8752 

We'll beat any advertised price. 

MEGATRONICS, INC.. P.O. DOX0660. LOGAN. UTAH 84321 



The icons are used for file manipula- 
tions under the Workbench. The 
program does not replicate features 
already implemented in the Work- 
bench. If you want to copy, rename, 
delete, or move a spreadsheet, these 
functions must be performed under 
the Workbench. This approach makes 
sense for the novice user; there is no 
need to learn a new way to delete a 
file. Just move it into the trashcan, 
and you are done with it. 

Haicalc also supports full interlace 
mode and all Amiga fonts. An inter- 
esting aspect of this program is its 
ability to adjust to the chosen font's 
point size. While you can get 44 lines 
of text on the display using the 
interlace mode, the resulting flicker 
problem can be annoying. 
An easier solution is to use a 
6-7 point font. This change 
results in a display of 27-30 
lines of text, allowing you to 
see more of the spreadsheet 
while avoiding the ever- 
present interlace flicker. 



latter operation is performed through 
an intuitive "click and drag" mouse 
operation. 

All Haicalc functions are available 
through pull-down menus; there are 
no complicated control key combina- 
tions to remember. If something can 
be done, it appears on one of the 
menus. In addition, for the experi- 
enced user, all major functions are 
available as Amiga key combinations 
for ease of use. 

Getting around the spreadsheet is very 
easy. The mouse and the cursor 
control keys allow you to navigate 
anywhere. The window task also has 



defined functions: AVG, MAX, M1N, 
SUM, CELLS, and COUNT. The first 
four functions are self-explanatory; the 
last two require some explanation. 
COUNT returns the number of filled 
cells in a given cell range. CELLS 
returns the number of total cells in a 
given cell range (filled or unfilled). 
Most spreadsheets have functions for 
calculating present values and future 
values of funds, loan payment terms, 
and other financial functions. If you 
want to perform these functions in 
Haicalc, the full formulas must be 
entered as cell formulas. This hin- 
drance is inconvenient at best. Usabil- 
ity is limited if you are not familiar 
with the formulas for these functions, 
but these functions are available in 
any good finance book. 



Snlr knefaurk lilt - sinil* U tkt kttchurk istl V» Ira iu*uj M 
it trstiH twvittr rnfiuKt tsiu a spFttfcktt t. 



IV t«i is i 25 kj 25 grii if (futiMS 

tot tick ctll is l.NI tints ftt cell ti its Itfi. 



In addition to the font 

support, the program also 

uses all available soft styles. 

Values and labels can be 

bold, underlined, italicized, 

etc. Unfortunately, this 

availability of fonts and 

softstyles does not extend to 

printed output. The output 

is a straight text dump, not a graphics 

dump. Accordingly, output is printed 

only in the font styles resident in the 

printer. 

Haicalc also supports extended mem- 
ory. Each window task has a "mem- 
ory available" indicator. In the upper 
left corner of the spreadsheet, the 
system displays the amount of mem- 
ory currently available for data use. 

The mouse is a functional extension of 
the keyboard in running the program. 
The mouse moves the cursor around 
the screen, selects cells for use in cal- 
culations, and even selects multiple 
cells for cell range operations. The 



l.MM l.MU 

l.MM l.ttil 

1.1151 l.MU 

l.MM l.MU 

i.mm i.mu 

l.MM l.MU 

I. MM l.MU 

LMM i'.mt 

l.MM l.MU 

I. MM l.MU 

l.MM l.MU 



i.mti l.rnt 

1.M7I !,"• 

1.M7I I. 

1.M7I 1. 

J.M7I 1. 

1.M7I 1. 

l.MM 1,. 

1.M7I l.MM 

1.M7I 1.' 

l.MM 1, 

l.MTt l.MM 

1.M7I 1.*" 



proportional slider gadgets for moving 
quickly around the spreadsheet. 

Haicalc has features found in most 
spreadsheet programs. A cell can 
contain a number, text (a "Label"), or 
a formula. Formulas arc entered as 
they are entered in most spreadsheets. 
If you want to add the contents of 
cells A5 and B26, all you need to enter 
is +A5+B26. The results of the 
computation are then be displayed in 
the current cell. 

Haicalc is very weak in predefined 
functions. Most spreadsheets have a 
very rich set of functions available to 
the user. Haicalc has only has six pre- 



Haicalc allows you to cut 
and paste any number of 
cells to duplicate them. The 
display format for values 
can be selected from a list of 
valid formats. This list 
includes zero, two, or four 
decimal positions in fixed 
decimal format, a dollars 
and cents and a straight 
dollar format, and a percent- 
age format with zero or two 
decimal points (It is impos- 
sible to implement other 
configurations.). Text can be 
right, left, or center justified 
in columns. Column width 

can be set from one byte wide to more 

than a screen wide. 



One very nice feature of Haicalc is its 
ability to adjust the sensitivity of the 
proportional gadgets. They can be 
adjusted to move over large or small 
areas of the worksheet. Another 
innovative addition is the ability to 
customize the function of the return 
key. The return key can be configured 
to act as a standard return key, or it 
can be assigned the function of an 
arrow key. If you are entering large 
amounts of data, you will appreciate 
this feature. The key can be set so the 
cursor follows the logical flow of the 
worksheet. 



(continued on page 12) 



70 



Amazing Computing V3.1 ©19S8 



AVAILABLE NOW! 

StaiBoand2 

If you've owned your 
Amiga® for a while now, you 
know you definitely need 
more than 512k of memory. 
You probably need at least 
double that amount... but you 
might need as much as an 
additional two megabytes . 
We want to urge you to use 
StarBoard2 as the solution 
to your memory expansion 
problem -and to some of 
your other Amiga-expansion 
needs as well! 
It's small, but it's BIG- 

Since most of you want to expand your 
Amiga's memory without having to also 
expand your computer table, we designed 
StarBoard2 and its two optional 
"daughterboards" to fit into a sleek, 
unobtrusive Amiga-styled case that snugly 
fastens to your computer with two precision- 
machined jackscrews. 

The sculpted steel case of StarBoard2 
measures only 1.6" wide by 4.3" high by 
10.2" long. You can access the inside of the 
case by removing just two small screws on the 
bottom and pulling it apart. We make 
StarBoard2 easy to get into so that you or 
your dealer can expand it by installing up to 
one megabyte of RAM on the standard 
StarBoard2 or up to two megabytes by 
adding in an Upper Deck. 

This card has decks! 

The basic StarBoard2 starts out as a one 
megabyte memory space with Ok, 512k, or 
one megabyte installed. If you add in an 
optional Upper Deck (which plugs onto the 
Main Board inside the case) you bring 
StarBoard2 up to its full two megabyte 
potential. You can buy your StarBoard2 
with the Upper Deck (populated or 
unpopulated) or buy the Upper Deck later as 
your need for memory grows. 

And you can add other functions to 
StarBoard2 by plugging in its second 
optional deck -the Multifunction Module! 

StarBoard2 : functions five ! 

If we count Fast Memory as one function, 
the addition of the MultiFunction Module 
brings the total up to five! 
THE CLOCK FUNCTION: 

Whenever you boot your Amiga you have 
to tell it what time it is! Add a MultiFunction 
Module to your StarBoard2 and you can 
hand that tedious task to the battery-backed, 




Auto-Configuring 

Fast RAM 

Zero Wait States 

User Expandable 

from 51 2k to 

2 Megabytes 

Bus Pass- Through 

MultiFunction 

Option: battery/ 

clock, FPU, 

parity, Sticky- Disk 



real-time clock/calendar. A small piece of 
MicroBotics software in your WorkBench 
Startup-Sequence reads the clock and 
automatically sets the time and date in your 
Amiga. And the battery is included (we 
designed it to use an inexpensive, standard 
AAA battery which will last at least two 
years before needing replacement). 
THE FLOATING POINT FUNCTION: 

If any one aspect most characterizes the 
Amiga it's fast graphics! Most graphic 
routines make heavy use of the Amiga 
Floating Point Library. Replacing this library 
with the one we give you with your 
MultiFunction Module and installing a 
separately purchased Motorola 68881 FPU 
chip in the socket provided by the Module 
will speed up these math operations from 5 to 
40 times! And if you write your own software, 
you can directly address this chip for 
increased speed in integer arithmetic 
operations in addition to floating point math. 
THE PARITY CHECKING FUNCTION: 

If you install an additional ninth RAM 
chip for every eight in your StarBoard2, 
then you can enable parity checking. Parity 
checking will alert you (with a bus-error 
message) in the event of any data corruption 
in StarBoard2's memory space. So what 
good is it to know that your data's messed up 
if the hardware can't fix it for you? It will 
warn you against saving that data to disk and 
possibly destroying your database or your 
massive spreadsheet. The more memory you 
have in your system the more likely it is, 
statistically, that random errors will occur. 
Parity checking gives you some protection 
from this threat to your data residing in Fast 
RAM. Note that the Amiga's "chip" RAM 
cannot be parity checked. 
THE IMMORTAL MEMORY DISK 
FUNCTION (STICKY-DISK): 

When you've got a lot of RAM, you can 
make nice big RAM-Disks and speed up your 
Amiga's operations a lot! But there's one bad 
thing about RAM-Disks: they go away when 
you re-boot your machine. Sticky-Disk solves 
that problem for you. It turns all of the 
memory space inside a single StarBoard2 

AMIGA is a registered trademark of Commodore-Amiga 




MicroBotics, Inc. 

81 1 Alpha Drive, Suite 335, Richardson, Texas 75081 / (214) 437-5330 



into a Memory Disk that will survive a 
warm-reboot! When your Amiga attempts to 
grab a StarBoard2 in Sticky-Disk mode, a 
hardware signal prevents the system from 
acquiring the StarBoard2 as FastRAM (and 
thereby erasing your files) -instead it is re- 
recognized as a Memory Disk and its contents 
are preserved intact. If you want to work 
rapidly with large files of data that are being 
constantly updated (such as when developing 
software) you can appreciate the Sticky-Disk! 

Fast RAM -no waiting! 

StarBoard2 is a totally engineered 
product. It is a ZERO WAIT-STATE design, 
auto-configuring under AmigaDOS 1 .2 as 
Fast RAM. Since AmigaDOS 1,1 doesn't 
support autoconfiguration, we also give you 
the software to configure memory in 1.1. 

Any applications software which "looks" 
for Fast RAM will "find" StarBoard2. And 
you'll find that your applications run more 
efficiently due to StarBoard2 on the bus. 

A passing bus? Indeed ! 

What good is an Expansion Bus if it hits a 
dead end, as with some memory cards? Not 
much, we think -that's why we carefully and 
compatibly passed through the bus so you 
could attach other devices onto your Amiga 
(including another StarBoard2, of course!)- 

The sum of the parts... 

A really nice feature of the StarBoard2 
system is that you can buy exactly what you 
need now without closing off your options for 
future exapansion. You can even buy a Ok 
StarBoard2 (with a one megabyte capacity) 
and populate it with your own RAM 
(commonly available 256k by 1 by 150ns 
memory chips). When you add StarBoard2 
to your Amiga you have a powerful hardware 
combination, superior to any single-user 
micro on the market. See your Authorized 
Amiga Dealer today and ask for StarHoard2 

SUGGESTED RETAIL PRICING: 
StarBoard2, 0k (1 meg space): 
S\arBoard2, 0k (2 meg space): 
StarBoard2, 512k (1 meg space}: 
SiarBoard2. 1 meg (1 meg space) 
StarBoard2. 2 megs installed: 
SiarBoard2, 2 megs & MultiFunction: 
Upper Deck, 0k (1 meg space): 
MultiFunction Module: 
also available: 

Standard 256k memory card: 
MAS-Drive20, 20 meg harddisk: 
MouseTime, mouseport clock: 



S349 
S395 
S495 
$595 
$879 
$959 
$99 
S 99 



$129 

S1495 

$ 50 



Haicalc can also print more than one 
range at a time (Most spreadsheets 
only print one range of data at a 
time.). Haitex realized that most 
spreadsheet applications require 
printing of multiple pieces of data 
simultaneously. The program lets you 
print several predefined ranges at the 
same time, saving you many repeated 
commands. 

You are also not limited to the color 
choices made by the programmer. The 
entire color configuration is customi- 
zable, and your new configuration 
becomes the default. 

In addition to the basic spreadsheet, 
Haicalc also has two graphing tasks: a 
pic chart and bar/line chart task. 
These two tasks also run as sub-tasks 
to the cell and window tasks. The 
main program must be running to run 
either graph task. The features and 
flexibility of these two charting options 
leave a lot to be desired. Only three 
sets of data can be graphed at the 
same time on the bar charts, and there 



is no provision for customizing the 
graph. You cannot even print the 
graphs. The manual suggests a screen 
dump program (not supplied) for 
graph printing. While the graphing 
tasks might be suitable for some 
remedial analysis of data, they arc not 
very flexible or useful. 

The spreadsheet's most serious 
problem is precision. All calculations 
are performed in floating point. From 
the precision problems that are 
evident, it must be single precision 
floating point. The manual warns that 
numbers are only accurate to 8 
positions. If a number greater than 
eight digits is entered, you can assume 
that only the first eight digits are 
accurate. If 1234567890 is entered into 
a cell, the system uses 1234567880.63 
as the value for this cell. If the user is 
calculating household budgets, this 
should not be a problem, but if this 
package is being used to bid on 
commercial jobs, this limitation will 
certainly be a concern. In addition, if 



a calculation requires many functions, 
a rounding error will be introduced 
with each calculation. 

While Haicalc has its problems, it does 
have a market. If you are looking for 
a spreadsheet program for occasional 
home use, this program is ideal. It 
lacks the power of other Amiga 
spreadsheets, but, then again, it is only 
a fraction of the cost of other spread- 
sheets. This spreadsheet has the 
advantages of being simple to use and 
very easy to learn. If you have 
avoided spreadsheets because they 
were too complicated, take a look at 
Haicalc. It just might change your 
mind. 

•AC- 



haicalc™ Spreadsheet 

List price $59.95 

Haitex Resources 

208 Carrollton Park 

Suite 1207 

Carrollton. TX 75006 

(214)241-8030 



ADD TO THE POWER OF YOUR PROGRAMS WHILE YOU SAVE TIME AND MONEY! 



CBTREE does it all! Your best value in a B+tree source! 



Save programming time and effort. 

You can develop exciting file access programs quickly and easily because 
CBTREE provides a simple bul powerful program interlace to all B^lree 
operations. Every aspect ol CBTREE is covered thoroughly m the 70 page 
Users Manual with complete examples. Sample programs are provided on 
disk. 

Gain flexibility in designing your applications. 

CBTREE lets you use multiple keys, variable key lengths, concatenated 
keys, and any data record size and record length. You can customize the 
B+lree parameters using utilities provided. 

Your programs will be using the most efficient searching techniques. 

CBTREE provides the fastGst keyed file access performance, 
with multiple indexes in a single file and crash recovery utilities. 
CBTREE is a full function implementation of the industry 
standard B+tree access method and is proven in applications 
since 1984. 



Access any rseord or group of records by: 
■Gel first 

■ Gel previous 

• Get less than 
•Get greater than 

• Get sequential block 

• Get all partial matches 

■ Insert key and record 

• Delete key and record 

• Change record location 



• Get last 

• Get next 

■ Get less than or equal 
' Get greater than or equal 
■Get partial key match 

• Get all keys and locations 

• Insert key 

• Delete key 



Increase your implementation productivity. 

CBTREE is over 6,000 lines of tightly written, commented C source code. 

The driver module is only 20K and links into your programs. 




REACOCM svSTEms nc 



Port your applications to other machine environments. 
The C source code that you receive can be comailed on all popular C 
compilers for the IBM PC and also under Unix, Xenix, and AmigaDos! No 
royalties on your applications that use CBTREE. CBTREE supports multi- 
user and network applications. 

CBTREE IS TROUBLE-FREE. BUT IF YOU NEED HELP WE PROVIDE FREE PHONE SUPPORT. 

ONE CALL GETS YOU THE ANSWER TO ANY QUESTION! 

CBTREE compares lavorably with other software selling at 2,3 and 4 times our price. 

Sold on unconditional money-back guarantee. 

YOU PAY ONLY $99.00 - A MONEY-SAVING PRICE! 

TO ORDER OR FOR ADDITIONAL INFORMATION 

CALL (800) 346-8038 or (703) 847-1 743 

OR WRITE 



HOHI Variable length records. 



Peacock Systems, Inc., 2108-C Gallows Road, Vienna, VA 22180 



11 



Amazing Computing V3.1 ©1988 



Give your stock portfolio the VIP treatment 
as fast as 1-2-3! 



Move over, 1-2-3! VIP Professional is 
here to manage your stock portfolio 
via the Amiga. Every Amiga owner 
who has a stock portfolio should 
consider buying VIP Professional. 
This 1-2-3 mirror image does what it 
claims, with a fast calculation spread- 
sheet, database, and color graphics that 
won't quit. 

Portfolio management can be time- 
consuming drudgery. This number- 
cruncher makes it fun — almost like 
playing with model trains. Even a 
modest portfolio deserves VIP Profes- 
sional. 

I prefer the spreadsheet approach to 
keep up with stocks and mutual funds 
on a weekly basis. Dedicated 
portfolio software gives me control 
over the format of my portfolio 
management; a spreadsheet, however, 
is flexible and gives me complete 
control over what is projected. I can 
set up the parameters and define the 
portfolio records in exactly the way I 
want them. 

One drawback to the spreadsheet 
approach has been the lack of current 
security price retrieval from an on-line 
service such as CompuServe or Dow 
Jones. The Dow Jones Spreadsheet 
Link is now available for Lotus 1-2-3 
(and any portfolio spreadsheet written 
with certain DJ Spreadsheet Link 
codes). On-line stock martket informa- 
tion is interesting, but is more impor- 
tant to traders than to the average 
investor. 



by Suzanne Mitchell 

Anyone using the Fundamentalist 
approach to investing (i.e., evaluating 
and investing for the long haul), can 
easily track stocks using The Wall 
Street Journal, Investors Daily, Value 
Line, or a similar financial publication. 
This information is often available in 
libraries at no cost. You can keep 
track of the changing values of 
investments with weekly or monthly 
data updates and accurate tax records, 
without costly peripherals; spend your 
money on good stocks instead. With 
the loss of investment deductions 
under the new tax law, this is espe- 
cially true. 



The Mechanics of VIP 

Using VIP requires some study, but it 
is time well spent. You may find the 
manual overwhelming at first. This 
manual has enough information to 
occupy you for the next 100 years, so 
be content to digest just a few basics 
initially. Practice working with the 
examples. If you are not familiar with 
VIP or Lotus 1-2-3 (version 1-A), read 
Nov./Dec. '86 AmigaWorld (p. 103) for 
an overview. Keep adding commands 
and simple formulas gradually to your 
repertoire. The ability to use VIP will 
be your reward! 



Oh Where, Oh Where Did My 
Little RAM Go? 

You need 512K of memory to run VIP. 
When you start the program, the 
screen displays 60K available memory 
if all the demo files have been deleted 
(56-58K with the demo files intact). 
This is my observation, not VIP 



Technologies'. As I started exploring 
the more subtle mechanics of VIP, 
namely entering through CLI to gain 
extra memory, nothing happened. (A 
quick call to the company revealed 
there has been an update since my 
purchase last spring. The new update 
contains spiced-up demos and a new 
Wave graph using transcendental 
functions, an XY graph logo, and a 
graph for engineers.) After deleting 
all the demo files from the update 
copy, and booting through CLI, the 
available memory is 70K (worksheet 
bytes: 70632). Entering through the 
VIP icon produces 58K to 60K. 

To gain these extra bytes, follow one 
of these procedures. With two disk 
drives, load Workbench, and at the 
AmigaDOS copyright, press (CTRL) 
and (D) simultaneously. At the 1> 
prompt, shrink the Workbench screen 
and type: cd dfl: [RETURN|. At the 
1> prompt, type: Professional [RE- 
TURN|. With one disk drive, change 
the directory to Professional:, the name 
of the disk. Type Professional, press 
return, and the program will load. At 
the prompt, replace the Professional 
disk with Workbench. To get the 
maximum memory and bytes per 
spreadsheet, try resetting from Work- 
bench to clear RAM. 

How your spreadsheet was con- 
structed affects how much memory is 
left to run the program. As you build 
a portfolio spreadsheet, keep the 
memory requirements in mind. Here 
are a few hints for conserving mem- 
ory. Blank spaces take memory. Use 

(continued) 



Amazing Computing V3.1 ©7988 



13 



VIPs "%" command instead of 
formulas using "*100." Eliminate 
everything not necessary for clarity. 
Get in the habit of checking STATUS 
along with FILE SAVE. 

Rebooting (/FS, please!) after a "mem- 
ory full" message often restores the 
RAM which you used up with "erase" 
and "delete" commands. The manual 
includes a procedure for clearing 
memory from the worksheet, but I 
find it easier to /FS, QUIT and reboot 
when worksheet bytes are low. 

This list shows, in increasing order, 
how much RAM is required to display 
certain spreadsheet functions: 

1. Simple numbers (integers) require 
the least memory. 

2. Character Labels (ABCDEFG, etc.). 

3. Small Formulas (+D12..C12), 

4. Large labels (ABCDEFG, etc. from 
50 characters up) require the most 
memory. 

With some practice, you can bob-tail 
formulas to conserve memory. Here is 
an interesting example of how bytes 
can be saved by thinking out formula 
entries: 

STOCKS COST % OF TOTAC4 *Bd/eSUM(B4. 87) 

PE 1844.52 26% CS +B5/aSUM(B4..B7) 

TED 2251.75 31% C6 *B6/ffiSUM(B4..B7) 

STRA 1542,00 22% C7 tB6/SSUM(B4..B7) 

TOFU 1524.00 21% B9 eSUM(Bd..B7) 



7162.27 

You can save over 300 bytes of 
memory by making those calculations 
with these formulas: 

B4 +B4/B9 

B5 +B5/B9 

B6 +B6/B9 

B7 +B7/B9 

B9 @SUM(B4..B7) 



May 1 Have a Transfer, Please? 

Problem: You want to transfer an 
investment file on VIP copy B [dfl] to 
VIP copy A [dfO]. Answer: With 
copy A in dfO, bring up a blank 
worksheet. Change the directory (/ 
FD) to dfl [dfl:]. Retrieve (/FR) the 
file you wish to copy from dfl. The 
file in dfl will overlay the blank 
worksheet in dfO. Change the direc- 
tory (/FD) back to dfO. From the dfO 
menu, execute FILE SAVE (/FS). The 
file from B [dfl) is now copied and 
saved to disk A in dfO. 

As an investor, you arc already using 
certain performance measurements to 
track stocks. There may be some 
things you would like to add. You'll 
ultimately save time and frustration if 
you give your AMIGA a rest, sit down 
at a desk, and begin the portfolio 
spreadsheet on paper. First, determine 
the number of stocks you want to 
monitor on one worksheet. A flow- 
chart type outline is helpful for 
headings, the order formulas must be 
entered, what data is necessary to 
include for calculations, and building 
the formulas. 

Do not to use forward references. (A 
calculation which refers to a formula 
or data which has not been entered is 
a circular or forward reference.) VIP 
will alert you to this error by display- 
ing an icon in the lower right screen 
or ERR in columns or rows. 

The order of typical column headings 
would include Ticker symbol, date 
acquired, number of shares, purchase 
price, current price, and unrealized 
dollar gain or loss. These headings 
can be further refined to include 
percentage gain or loss, yield on cost, 
and yield on current value. I have 
deleted the Long/Short Term Capital 
gain column from my spreadsheets 
because it is redundant. (The 1987 tax 
law changes make it an unimportant 
entry now, anyway.) This frees up 
space and memory for other informa- 
tion such as what percentage a certain 
stock occupies in the portfolio or 



annual dividend income. Daily, 
weekly, or monthly updates are 
automatic, once your template is set 
up. Enter the current stock price, and 
VIP takes over and updates your 
portfolio. 

Here is a tip for entering fractions: 
Enter stock prices (17 5/8) as 17+5/8. 
This will display and print 17.625. 

Besides printing out the spreadsheet, a 
hard copy of all cell entries is made 
from: "Print, Other, Cell-Formulas." 
Consult your printer manual for codes 
and enter the Print Menu. Under 
"OPTIONS, SET-UP," enter the code 
for your printer. Compressed mode 
for Epson LX80 is N015. The follow- 
ing set-up works on Epson MX: 

\015 Print in compressed mode 
\027\048 Print at 8 lines per inch 
\027\05Q Print at 6 lines per Inch 
\027\O52 Print worksheet in italics 
\027\069 Print emphasized mode 
\027\071 Double strike 

Did Auntie Em leave you a few 
shares of Dividend Reinvestment Plan 
(DRP) stock in her will? Or do you 
belong to an investment club which 
allows you to purchase of one share of 
a DRP stock? DRP stocks have been 
screened for future value and will be 
held for the long haul. Unless you arc 
heir to a fortune (or stop buying 
software), small sums along with 
dividends will be invested regularly 
throughout the years until you decide 
to sell. This creates many stock 
purchase entries; you need to keep an 
accurate running average price for the 
stock. This average price (dollar cost 
averaging) will give you the base for 
gain or loss when the stock is finally 
sold. The IRS will be very impressed 
with your records in the event you arc 
audited! 



(continued on page 16) 



u 



Amazing Computing V3.1 ©19SS 



SOURCE LEVEL DEBUGGER 

Announcing the Manx Aztec C Source Level Debugger for the Amiga! 

NOW THE MOST ADVANCED COMPUTER IN THE WORLD HAS THE MOST 
ADVANCED SOURCE LEVEL DEBUGGER IN THE WORLD: 

Manx Aztec SDB. 



Save Time and Effort 

If you're a pro at working with low level 
Amiga debuggers, you'll recognize what 
a source level debugger can mean— time 
savings. Time you'd rather spend creat- 
ing than debugging. And if you're a be- 
ginner, SOB will make you a pro in no 
time. 

Outstanding Features 

That's why our new windowed SDB is so 
spectacular— because it's full of exciting 
features that make debugging a breeze. 
Of course, SOS has all of the features you 
expect from a debugger— like line-by-line 
tracing. Conditional breakpoints on lines, 
functions, or variables. Examination, 
modification, and display of global, local, 
and static variables, structures or expres- 
sions by name. 

But SDB is also full of unexpected, in- 
credibly sophisticated features. There's 
reusable command macros and proce- 
dures. Back tracing. Active frame context 
switching— just to name a few. Wait till you 
see SDB in action— it will blow you away! 

Our Commitment to You 

Manx Software Systems is the leading 
edge in C development systems. That 
means continual updates that bring the 
best to you. 

Experience version 3.6 of Aztec C68W 
Am today. And enjoy the most advanced 
debugger available ... on any computer. 



Aztec S&B: test.c 



11 ', HaiJHarsc, arsv) 

12 : char **arflv, 

13 : { 

14 : int ij 



^" 



H7 : 
I IB : > 



for (i-8;i<sizeof(Itc«s)/sizeof (struct ite«s);i* 




28 : processj ten(itp) 
21 : struct iteiis *ita! 



lint i : 1 



;iruct item _Ite«s =.{ 
struct itens Knext - BxBBBBBBBB 
cha? nawt.81 = "Iten 2" 
Ions value = 3412 
int index = 129 



5^ 



• View your C Source 

• Enter commands 

• View your command output ... 

... a// at the same time! 

AZTEC C VERSIONS TO SUIT YOUR NEEDS: 

Aztec C68K/Am-p Professional System $199 

Includes all of the Standard Features 

Aztec C68K/Am-d Developer System $299 

Includes all of the Standard and Extended Features 

Source Level Debugger $75 

Library Source $300 



Standard Features 

of Aztec C68k/Am 3.6: 

• optimized C with selectable 68020 and 
68881 support 

• 680x0 Macro Assembler with 68881 
support 

• linker/librarian with overlays, scatter 
load, and segmentation 

• symbolic debugger 

• supports Amiga object format 

• UNIX, AMIGA, and general purpose 
run time routines 

• runs under CLI and supports all 
Workbench functions 

• creates CLI and Workbench 
applications 

• Supports both 1.1 and 1.2 Amiga DOS 

• 600 pages of documentation and 
great example programs 

Extended Features 
of Aztec C6BWAm 3.6 

• UNIX utilities make, diff, grep, obj, ord, 
and w 

• special math support libraries for 
68881 and Manx IEEE emulation 

PortaDJ'iy Aztec C Is also avaiabJe for the Macintosh, 
Appte II. MS-DOS/PCDOS. CPIM-B6. TRS-80. ROM, and 
others Aztec C66k Third Paly Software A large array of 
support software is available lor Aztec CB6k Call or wrrte 
iDr information The following is a l=sl of the most requested 
products Power Wrndows • Amiga Vrew • Key to C • 
Amiga Lint » Metascope. immediate Delivery Available for 
Most Destinations Aztec C is available on a thirty day 
money-back guarantee C.O.D. . VISA. American 
Express. MastefCard. wire (domestic and international). 
and terms are available. 



Order Now At No Risk Or Call For Information 

1-800-221-0440 

InNJ or outside the USA call: 201-542-2121 
Telex: 4995812MANX Fax: 201-542-8386 



SEE FOR YOURSELF WHAT ALL THE FUSS IS ABOUT 

Order our Manx Aztec C68k/Am with 30-day satisfaction guarantee. 
We're convinced that once you see SDB at work, no other debugger 
will ever be good enough again. But if you don't believe us — try us! 
We're offering an SDB Demonstration Disk for just $5. Simply call 
1 -800-221-0440 (N J call 201 -542-2121 ) and order your copy of Aztec C 
or your Demo Disk today. 



Mam Software Systems • One Industrial Way • Eatontown, NJ 07724 



iritnoJbuLciAy. . 




EXTEND is a portable Library of 30 new AmigaBASIC 
commands that bring the Pizzaz of INTUITION 

into your AmigaBASIC programs 



TRUE INTUITION REQUESTERS and GADGETS 


! 


* Poinl & click on directory requester gadget* lor ease in loading and saving files 
jji String and boolean gadget implementation with polling support 

* Custom string requesters 


MENU CONTROL 


* Complete menu attribute control # Assignment of command key functions 
%. Submenu definition 


SPEED 


* Written in 100% assembler =t= Compatble with ail tested compilers 


EASE of USE 


1 



:*: No program overhead 



& Invoked with a simple LIBRARY statement 



^32^^2^^fe»%a^^ {on *JU, $59.95 



ALSO AVAILABLE 

VIDEO C ATALOGER * Organize your videoJape collodion 

HOUF 1NVFNTORY • In the went otloss could you B _.__ 
HOMfc iNvtNioHT * |;sl mBr y hing you own 7 534.95 

Manage lina-MakeJaboJa., each 

MAIL ME * CU stomer lisls, greeting caid lists, birthdays etc. 

VISA/MC Acoopled 

Dealer Inquiries and 

Phone Orders 

Welcome 



StUNSMILE SOOTIWAlfflB 

533 Fargo Ave. Buffalo NY. 14213 
716/885-5670 



special 

INTRODUCTORY 'i 

OFFER 
EXTEND* any oih or 

ONLY $79.00 



SATISFACTION 
GUARANTEED 

Compatible with all 
Amiga models 



My method for the DRP stock entry 
may not follow the book's, but it does 
save memory and keeps entries to a 
minimum, while eliminating a jumble 
of numbers. Enter the first DRP 
purchase manually (A6-H6) from the 
company statement. Begin using 
formulas on the second entry. You'll 
have to be quick to catch VIP's 
lightning-fast automatic calculations on 
Amount Invested, Total Shares, and 
Average Cost per Share. 



MACROS, Anyone? 

Until you feel comfortable with VIP, 
forget the macro section. Once you 
get in the swing with the spreadsheet 
format, you'll want to set up some 
single key command macros. These 
little goodies can automatically read 



and perform a "record" of the key- 
strokes you assign to them. VIP 
comes with some pre-sct shorthand (/ 
P, /FS, /FR, etc.) used in the spread- 
sheet program. They arc easy to 
remember (first letter of word) and 
save time. Now it's your turn to create 
your first macro. First, save and exit 
the current worksheet. With the 
cursor at Al:, type your name fol- 
lowed by a tilde (~). 

Joe Smith- 
Make sure the cell below Al is 
EMPTY. This ends the macro. Now 
you must name the macro. With the 
cursor on cell Al, which contains the 
macro, perform the following steps to 
give the cell a special range name: 

From the Worksheet Menu, display 
Range Name Create (/RNC). At the 
"Enter name:" prompt, type: \a and 



hit RETURN. Hit RETURN again to 
confirm that cell Al is the name: \a. 
Save the macro with File Save (/FS). 
To execute the macro, move the cursor 
to an empty cell, hold down the right 
ALT key and press "a." Congratula- 
tions! 

Macros can perform both simple and 
complicated tasks, but they can't read 
a value entry. All macros must be 
made into labels. Create a library of 
these single keystroke commands for 
use in portfolio management spread- 
sheets (setting column widths, entering 
ticker symbols, menus or executing 
any entry that is often repeated). 

Using and creating macros is a subject 
of its own. An excellent book — listed 
in Appendix B of the VIP User 
Handbook — is The Hidden Power of Lotus 
1-2-3: Using Macros . If you can only 
afford one reference book, my advice 
is to buy Lotus 1-2-3 Self-taught on the 
IBM PC by Ira Krakow, Brady 
Communications Co. For ready-to-use 
models, 1-2-3 Run by Lauren and 
Robert Flast is good. All three books 
are easy to read and understand. 

After you complete and save your 
stock portfolio spreadsheet, try using 
the graphing capabilities of VIP 
Professional. The visual impact of 
graphing your calculations may not be 
necessary for personal investment 
management, but it certainly is helpful. 
The manual has good examples and 
text to guide you on your way to 
completing your stock portfolio with 
that Amiga VIP touch! 

•AC- 



16 



Amazing Computing V3.1 ©1988 




AT LAST! 



Now Shipping. 

To order call toll-free anytime: 

Nationwide: 800-452-4445, ext. 1156 

California: 800-6269541, ext. 11 56 



For more information, contact: 

A-Squared Distributions Inc. 

61 14 La Salle Avenue, Suite 326 

Oakland, California 9461 1 

41 5-339-0339 



The AMICUS NETWORK 



By John Foust 



Fall COMDEX Report 



In short, Fall COMDEX in Las Vegas 
was flooded. It rained for the first 
few days of the show, flooding the 
streets of the city. Three inches of 
water flooded the COMDEX registra- 
tion tent on Monday. 

COMDEX was also flooded with 
people. A record number attended, 
topping 90,000. The city didn't have 
enough cabs or hotel rooms to go 
around. In a small way, there was 
also a flood of Amiga hardware and 
software. 

As they did this spring, Commodore 
hosted a show for its dealers on the 
Sunday before COMDEX. The feature 
speaker was Max Toy, Commodore's 
new president. Toy brings much 
computer experience to Commodore. 
He worked for IBM when the PC was 
launched; he moved to Compaq, a 
leading maker of PC compatible 
computers; then he moved to Ill's 
computer division. 

The dealer show brought the first 
official acknowledgement of several 
long-rumored products from Commo- 
dore. These include a 68020 board for 
the 2000, a high resolution display 
with approximately 800 by 1000 pixels 
in monochrome, and a professional 
video board for the 2000. More on 
these later. Commodore also revealed 
a BridgeBoard based on the 80286 
microprocessor that turns the 2000 into 
an AT clone. No shipping dates were 
given. 

Software and hardware developers had 
a separate room for showing their 
products to dealers in an atmosphere a 



little less hectic than the COMDEX 
show floor. This was nice because of 
the limited space in the Commodore 
booth. Every developer had the 
chance to participate in the pro-show 
dealer presentation. 

The developer room had dozens of 

Amiga 500s and 2000s, and only one 
or two Amiga 1000s. Following the 
dealer show, Commodore hosted a 
cocktail party. Mimctics' Jeff Burger 
provided live music for the party 
using SoundScape and a full rack of 
MIDI instruments. 



COMDEX 

In the West Hall of the COMDEX 
show. Commodore had a nice, new 

booth, topped off with the new Amiga 
logo on an illuminated sign hanging 
from the ceiling. The sign was very 
prominent, visible from all areas of the 
West Hall. Only the Amiga and PC 
product lines were on display. The 
booth had wide open spaces, retreating 
from the "pack the booth" technique 
used by Commodore and Atari at 
previous shows. This approach gave 
the booth a more professional look. 

At one corner, the booth featured a 
continuous viewing of two video tapes 
promoting the Amiga. Commodore 
gave away Amiga baseball caps and 
"Only Amiga Makes It Possible" 
buttons. The video tapes included 
segments filmed at the New York 
AmiExpo, mixed with shots of the 
musicians and vocalists in the studio 
recording the "Only Amiga Makes It 
Possible" jingle. Commodore appar- 



ently intends to advertise, too; they 
even had a billboard on a street in Las 
Vegas. 



Commodore Products 

A new high resolution monitor was 
shown, part number A2024. No word 
was given on when this monitor will 
be available, but its specifications are 
impressive. Some sources indicated 
the monitor may be priced in the $500 
to S600 range. If this is true, it would 
make the Amiga 2000 a very afford- 
able desktop publishing system. This 
product makes the most sense when 
coupled with rumors of a Commodore 
laser printer. 

The monitor's display is 1000 by 800 
pixels, by two bitplanes deep. Four 
shades of gray are possible with no 
potential for color in this mode. The 
signal comes from the standard RGB 
connector on the back of the Amiga 
and works on all Amiga models. 

MicroScarch had the enviable job of 
demonstrating the new monitor. They 
showed their City Desk desktop 
product working in conjunction with 
an HP Laser Jet laser printer. 

The new monitor system was devel- 
oped by Hedley Davis of Commodore 
West Chester, working closely with 
Dale Luck, based in the West Coast 
Amiga offices. Luck wrote revisions 
to the operating system graphics 
software, so the higher output resolu- 
tion would not be apparent to both the 
operating system and other Amiga 
programs. 

(continued on page 20) 



18 



Amazing Computing V3.1 ©1988 



/f 



«o 



y 



Don't miss the boat. . . 

with Amiga expansion products 




Sub 



System" 



A2000 



The Advantage™ 

A two megabyte RAM expansion card for use 
in the Amiga 2000 and the Subsystem. 

■ No-wait-state design 

■ Auto configures with all Amiga 1 2 software 

■ Designed to A2000 form factor 

■ Very low power consumption 

■ User may install inexpensive 256Kx1 
dynamic RAM 

Unpopulated (OK) $199 

Populated {.5, 1 or 2 MEG) CALL 



sH5 



System' 



A2000 



OverDrive? 



Direct Memory Access (DMA) SCSI 
Interface. Just because you have an Amiga 500 
doesn't mean that you don't want the speed of 
DMA. Using the Subsystem with our A2000 card 
gives yoi what others only offer to A2000 
owners. No matter what Amiga you own. Pacific 
Peripherals makes a SCSI for you. Our SCSI 
offers you compatibility with proven Apple Mac- 
intosh external storage devices. As a matter of 
fact, all of our drives are Macintosh compatible. 
If you use the SCSI in your A2000 you have an 
additional bonus. ..the ability to add a hard drive 
inside your Amiga and still use external devices. 
In addition to 30 megabyte and 50 megabyte 
(and larger) drives, Pacific Peripherals offers the 
Infinity removable media drive. Once you have 
purchased the Infinity, you have unlimited 
capacity. Each 1 megabytes of memory costs a 
whopping $1 8. (Does 1 00 megabytes for $1 80 
sound more impressive?) With all this capacity 
you still get 75ms access time. 



OverDrive card only 
OverDrive "hardcard' 
External Hard Drives 



$249 
CALL 
CALL 



that limit expansion 



A500 



A1000 



Sub System 




A1000 



H^ 



Use cards designed for the A2000 with your A500/ 

1000, not out-of-date 
A1 000 cards. The 
Subsystem gives you 
two expansion slots for 
A2000 cards and a 
space for an optional 
second floppy drive. The 
Subsystem fits under your 
Amiga, completely out of the 
way. Only 1 .5 inches tall, the 
Subsystem raises the key- 
board to the height of an average typewriter and actu- 
ally makes it easier to use. A UL/CSA-approved power 
supply is included that guarantees additional cards will 
not overtax your Amiga. The optional floppy drive is 
state-of-the-art CMOS design with extremely low 
power requirements. Cards and disk drive can be eas- 



ily installed at a later date, 
with floppy drive 



Subsystem 1000 



$249 
S399 



FOR AMIGA 1000 



(415) 651-1905 



Policy: Add 3% lor VISA or Masterca rd. AI]ow 3 weeks tor checks to 
dear. Send cashiers checks or money orders tor taster shipment. 
California residents add 7% for sales tax. No charge tor UPS ground 
delivery. Next day and 2nd day delivery available. Prices subject to 
change. 

infinity is a trademark o* Peripheral Land. Macintosh 
is a trademark of Apple Computer inc Amiga is a 
trademark ol Commodore Business Machines Caoe M. 
the Advantage. SubSystem are trademarks of Pacific 
Peripherals 



Pacific _ 
Peripherals 

M. RO. Box 14575 




Fremont, CA 94539 



Commodore has also produced a 
genlock for the 2000 based on the 
design of the genlock for the Amiga 
1000. It should be slightly less 
expensive because it is a card, not a 
card in a case. According to a 
Commodore representative, the 
announced medium-persistence 
monitor should be shipping in Janu- 
ary. 



No More Interlace 

Micro way showed FlickerFixer, a 
deinterlacer board for the Amiga 2000. 
It eliminates interlace flicker by buffer- 
ing the video image in its on-board 
memory. It refreshes the screen at the 
same rate, but the interlace is gone. It 
also eliminates the dark gap between 
scan lines. 

Microway is well-known in the IBM 
community for making hardware and 
software for floating point coprocessor 
chips. They had their own booth as 
well. Microway is the first big player 
entering the Amiga hardware market, 
akin to the entry of WordPerfect in the 
Amiga software market. 

FlickerFixer can display all 4096 colors. 
The board will retail for S595, and 
they expect to ship in January. It 
requires a Multisync-type monitor, 
which is currently very popular in the 
IBM market. A Multisync monitor 
sells for about S575 via mail order, so 
the total system price is about $1000. 

Taurus Software showed a CAD 

program called X-CAD. They showed 
it on the machine running FlickerFixer. 
It has fast screen updates, which 
address most complaints about other 
Amiga CAD programs. Taurus plans 
future extensions for vector-based font 
design for laser printers, and modules 
for doing three-dimensional drawings. 

Sculpt 3D was demonstrated on an 
Amiga 2000 equipped with 
Commodore's 68020 card. The speed 
of the program increased quite 
noticeably. Byte by Byte will ship the 
successor to Sculpt 3D, called Animate 



3D, in mid-December. They also 
showed the Byte Box, an external 
memory expansion for the Amiga 500 
which holds up to two megabytes of 
memory. 

The Commodore 68020 board will 
quadruple the speed of some pro- 
grams. The board has an on-board 
memory-management unit to oversee 
as much as an extra two megs of 32- 
bit memory. The extra memory could 
be used to bring simple virtual 
memory to the Amiga. There is also a 
slot for a 68881 chip. The board runs 
at 14.2 Mhz, and the 68881 can run at 
any speed, depending on an add-on 
crystal. 

Commodore also showed the NYIT 
digitizer and genlock board for the 
Amiga 2000. Many of its hardware 
abilities are under software control, so 



"The Commodore 68020 

board will quadruple the speed 

of some programs. 

The board has an on-board 

memory-management unit 

to oversee as much as an extra 

two megs of 32-bit memory." 



you can switch between two video 
sources and adjust the genlock from 
sliders on the control software. The 
digitized images are stored in local 
memory until copied to the Amiga, if 
you want to convert them to IFF. 
Unfortunately, according to some 
Commodore forecasters, this board is 
still several months from shipping and 
is currently undergoing FCC testing. 

80286 Board 

The announced 80286 BridgeBoard was 
held up at customs for several days. 
It was developed in West Germany, 
and Commodore West Chester 
apparently does not have a working 
prototype. 

Unfortunately, I left COMDEX before 
this board was shown. The 80286 is 
the microprocessor used in IBM AT 



machines. It runs faster than the 8088 
chip used in the BridgeBoard now 
shipping for the Amiga 2000. The 
Commodore 80286 board reportedly 
runs at 6 Mhz, which is slow in 
today's world of 8, 10, and 12 Mhz AT 
clones. It will certainly be faster than 
the 4.77 Mhz BridgeBoard, but real- 
world use will be the only indicator of 
relative speed. Differences in video 
display speeds may be the critical 
links. 

Although the 80286 card is faster than 
today's 8088-bascd BridgeBoard, both 
cards must interface with the proprie- 
tary video display software in the 
Commodore BridgeBoard design. The 
update speed of this software will be 
very important to users seeking faster 
PC compatibility in an Amiga 2000. 

Programs like word processors expect 
to write to the screen at faster rates. 
These programs may appear sluggish 
when run on the BridgeBoard system. 
To be certain, the BridgeBoard hard- 
ware and software will never be as 
fast as the dedicated video hardware 
in a real PC clone. Of course, users 
can always implement a PC video card 
and a separate monitor with the 
Amiga 2000, If they want full video 
speeds. The Amiga 2000 PC compati- 
bility is also currently limited to IBM 
monochrome and CGA graphics 
resolutions. If you want EGA or VGA 
resolutions, you must use an external 
monitor and separate video card. 

After COMDEX, representatives of 
Commodore at a user group meeting 
said there may also be an XT-type 
BridgeBoard, with a 8088-type chip 
running at 8 Mhz. 



Video Toaster 

NewTek showed the "Video Toaster" 
at COMDEX for the first time. The 
Video Toaster is a real-time, full color 
digitizer and genlock, with digital 
special effects abilities. It is a proto- 
type of a device for sale next year. 
Flyers at the show said it would sell 

for $799. 

(continued on page 22) 



20 Amazing Computing V3.1 ©1988 




Other Products From 
The Other Guys 



Reason 


$395.00 


Omega File 


$79.99 


Promise 


$49.99 


KEEP-TrakGL 


$49.99 


AMT 

(Amortization Program) 


$39.99 


Match-It 


$39.99 


Math-A-Magician 


$39.99 


Talking Story Book 
(Christmas Stories) 


$39.99 


Musicial Slide 
Show Demo 


$ 5.00 



Call or write for 
more information. 



SYiylHlA High Performance Digital Synthesizer 



*! 



CS$ 



*&* 



A stale of the art music tool which will: 

Ovale digital III' Instruments for use with nearly all music programs! 

Modifying existing IFF Instruments. Use SYNT1IIA on digitized samples to add reverb, wow, and other enhancements. 
SOMETHING FOR EVERYONE: 

Additive Synthesis - a traditional method which can create almost any type of instrument 

Plucked String Synthesis - simulates plucked strings . . . right down to the 'pluck'. 

Interpolative Synthesis - a method which introduces the natural imperfections found in instruments. 

(Instruments such as brass, woodwinds, pianos, etc.) 

Percussion - build your own drum set . . . create any drum you desire. 

Subtractive Synthesis - a simple method of creating instruments. 

Special Effects - includes filtering, amplification, phasing, waveshaping, amplitude modulation, real reverb, and . . . 

IFF Music Player - powerful and compact. Now you can enjoy those songs that needed a memory expansion before! Up to 

32 tracks and 32 IFF Instruments! Supports chords, ties, etc. 
IS IT LIVE ...OR IS IT SYNTIIIA? 

Synthia uses the latest technology to generate realistic sounding instruments and even the new families of instruments sound 

real. A re al synthesizer on a real computer! 

Why buy digitized instruments when you can SYNTIIIAsize them? ^iCIQ QQ 

Requires AMIGA 512K «?vf i7.ifi7 

Copyright© 1987, THE OTIIHR GUYS Software • AMIGA is a registered trademark of Commodore Amiga 



M& 




THE OTHER GUYS MH 

55 North Main Street, 

Suite 301-D 

PQ Box H 

Logan Utah 84321 



CB01] 753-7620 
(BOO) 942-9402 



GET 
THE BIG 
PICTURE 




"THE BIG PICTURE" 

Print your IFF/HAM pictures in 
full color up to 104 feet x 104 
feet. "Real" multiprocessing and 
overscan printed because printing 
is done from the file not the 
screen. 

$29.95 for the following printers 
in one package: 

Canon PJI080A / Okidata 20 color Radio 
Shack Quadran Quadjet / Epson FX-80. 
FX-IOQ. EX-BOO, EX-IOOO / Fujislu 1200. 
2300. 2400 NEC P6. P7, CP6, CP7 / XEROX 
4020 

ATI-LINK 

An IFF/HAM loTARGA file 

conversion program only $100.00 

Perlerences Drives 

Quadran Quadjet $30.00 NEC CP7 $50.00 

Big: Picture is a fudemjni qI Lightning Pubtisrunoj Amiga is a rerjister«t 
tTjeerr^rt rjt Corr.rrrjdoie Ltd Taiga is i registered trademark of AT & T 

Lightning Publishing 

1821 N. Ohio St.. Arlington VA 22205 
(703) 534-8030 

Nime 
Address 



City 



State 



Zip 



Amount 



Program 



The Toaster was demonstrated at 
COMDEX after I left Las Vegas. I saw 
the Toaster in action at the FAUG user 
group meeting the week after 
COMDEX. The color video camera 
was pointed at audience members R. J. 
i Mical and Leo Schwab, and special 
effects manipulations were performed 
in real time. The Toaster put sixteen 
smaller copies of the image on the 
screen at once, moved a smaller box 
around the screen, flipped the box end 
over end, mapped the flat image to a 
round surface, and "pixelized" the 
image, all in real time. It is very 
impressive, but it isn't shipping yet. 

University of Lowell's Center for 
Productivity Enhancement showed 
their parallel processing board for the 
Amiga 2000. It demonstrated edge 
detection at several frames per second 
from a live video source. It uses NEC 
image processing chips that work in 
parallel. This means that for more 
speed, you just add more chips. They 
estimate a price of about S2000. 



Changes 

Several companies have made changes 
to their products. Finally Technologies 
showed their Hurricane Accelerator 
board, a 14 Mhz 68020 speed-up card. 
The list price has increased to S595 
since the Commodore Show. Gold 
Disk showed Professional Page again 
and said the program would be out in 
December, 

Mimetics has changed the name of 
their genlock from Imagcn to AmiGcn. 
The retail price is S179.95, and Mimet- 
ics said it would ship the week after 
the show. Roger Powell's MIDI 
program. Texture, has been "Amiga- 
ized," so it looks less like an IBM PC 
program. The list price is S199. 

WordPerfect Corporation reported 
tremendous sales of Amiga WordPer- 
fect. They plan to convert other 
products to the Amiga. They report- 
edly recouped their Amiga porting in- 
vestment in the first month of sales. 



Xerox is still using the Amiga to 
demonstrate its color printers. Hewl- 
ett-Packard supplied Commodore with 
several HP PaintJet printers for the 
booth. Both HP and Xerox were using 
preliminary versions of the AmigaDOS 
1.3 printer drivers. The new drivers 
bring as much as a six-fold increase in 
printing time over the AmigaDOS 1.2 
printer drivers. 

Progressive Peripherals showed a slew 
of new Amiga products. They had 
their own booth, apart from Commo- 
dore. They showed a prototype real- 
time video digitizer, scheduled to sell 
for less than S500. It digitizes to its 
own memory, then downloads the 
data to the Amiga through the parallel 
port. Other hardware plans include a 
genlock and various products for the 
Amiga 500, including several memory 
boards, an external drive that is much 
smaller than the Commodore drive, 
and a 68020/68881 enhancement. 

Progressive is not short on software, 
either, PIXmate is an image process- 
ing program for manipulating IFF 
images. It converts between resolu- 
tions, as well as accomplishing more 
advanced techniques, such as edge 
detection and image enhancement. 
PIXmate is very fast because it uses 
the blitter for many operations. 
Progressive also showed demos of two 
CAD programs, an accounting pro- 
gram, a disk management program, 
and a program to let you use Commo- 
dore 64 peripherals on the Amiga. All 
these appeared far from completion. 

Supcrbase Professional will reportedly 
be available before the end of the year. 
This one looks like it has more 
kitchen-sink features than any other 
program. It has programmable 
telecommunication features for moving 
data to other computers, as well as 
built-in word processing and mail 
merge facilities. 

•AC- 



22 Amazing Computing V3.1 ©198S 




WrxfFs a Haicalc? 



(pronounced hl-calc) 



Haicalc™ is the best valued 
spreadsheet available for the Amiga. If 
you have ever had to project budgets, 
calculate expenses, or prepare a 
financial statement you need Haicalc. 
Far only $59.95 you receive a powerful 
program that fully utilizes the Amiga 
Intuition user interface. 

You hove the convenience of simple 
point & click selection of files under 
Workbench, pull down menu selections 
for commands, and economical use of 
your computer's memory -- program 
size is only 120k. You harness the 
power of multi-tasking and macros with 



a maximum spreadsheet size of 9,000 x 
9,000. Compare this to the competition. 
Haicalc is a powerful solution for a 
painless price. 



SPECIFICATIONS 



Maximum Spreadsheet Size — 9,000 

rows by 9,000 columns* 
Number Precision — Accurate to 8 

digits 
Interlace Display Ability — Up to 44 

rows of data per window 
Window Resolution — 1,000 by 1,000 

pixels 
Address Space — 18,000,000 cells" 



Program Size— 120k 

Sparse Matrix Allocation — Uses 

memory only when a ceil contains 

data 
Copy Protection — None 
System Requirements — 512k Amiga, 

1.2 Kickstart, Single floppy drive 
'All capacities are subject to limits of 

system memory aid storage. 



hi 



HAITEX RESOURCES 

208 Carrollton Park 
Suite 1207 

Carrollton, Texas 75006 
haitex (214)241-8030 



Haicalc is a Irademark of Haitex Resources ■ Amiga is a registered trademark of Commodore- Amiga, Inc. 



A Ad A. Z I M G 



REVIEWS 



Money Mentor Version 2.0 

A Personal Financial System 






j RrniGH.h 



S0O8E1 



A home accounting system should do 
more that just replace your checkbook. 
After all, who wants to do the same 
work twice? In addition to keeping 
your checkbook balanced, a home 
accounting system should do the fol- 
lowing things: 



1. Keep track of other types of 
accounts (savings, IRAs, and 
credit cards). 

2. Allow you to make budget 
items for things like your 
salary, groceries, rent, car 
payments, and mortgages. 

3. Keep track of day-to-day 
transactions affecting these 
accounts and budgets. 

4. Provide a clear and mean- 
ingful way to compare your 
actual performance to your 
projected budgets. 

5. Print checks. 



6. Allocate transactions to multiple 
budget categories, 

7. Provide query capabilities for your 
accounts. 

8. Simplify entering transactions that 
recur from month to month. 

Money Mentor is a home accounting 
system by Sedona Software. With 
Money Mentor version 2.0, you can 
create accounts and budgets, enter 
transactions against your accounts, 
transfer funds between accounts, print 



in/ Stephen Kemp 

checks, and produce graphs and 
reports to keep track of your assets. 
Essentially, Money Mentor does 
everything in the above list, and more. 

Getting Started 

The documentation is quite good. It 

uses understandable examples and is 



divided into sections corresponding to 
the menu choices in the program. 
This makes it easy to refer to the 
documentation for help while you are 
using the program. 

The first few chapters explain the basic 
concepts of home accounting and how 
Money Mentor can work for you. A 
tutorial begins in Chapter Four. Al- 
though some people may be able to 
use Money Mentor right out of the 
package, most will find the tutorial 
valuable. 



Bin 

oorood 

QQQGQ 
DOQf 

|"o| |T| |ca{ I . 
1 ^HM 




You must create a data disk to begin 
using Money Mentor. Money Mentor 
makes this disk if you select the 
"Create Data Disk" icon. Once you 
have a data disk, selecting the 
"Checks" icon starts Money Mentor. If 
the data disk is not in a drive, Money 
Mentor prompts you to place the disk 
in any drive. If you have 
only one drive, have no fear. 
Once you place the data disk 
in the drive, the program 
disk is no longer required. 
This means you won't spend 
your time swapping disks. 

Money Mentor does an 
excellent job of using both 
the keyboard and mouse. 
After using the system for a 
while, you almost never 
need to touch the keyboard. 
For those of us who are not 
mouse fanatics, the keyboard 
does everything the mouse 
can do. Money Mentor is 
menu driven, and functions 
are selected with the mouse or the 
function keys. Once you arrive at the 
desired function. Money Mentor 
accepts data through Scrolls. 



Scroll It In 

All data is entered through Scrolls. A 
Scroll is a unique data-entry field with 
which you can not only type the 
required information for a field, but 
you can also select items from a 
scrollable area underneath the field. 
An item can be selected from the 
Scroll with the mouse or arrow keys. 



24 



Amazing Computing V3.1 ©1988 



As an added feature, if you type the 
first letter or first few letters of an 
item in the Scroll, and then hit an 
arrow key, Money Mentor places the 
next item that begins with those letters 
in the selection box. This feature is a 
quick way to search through large lists 
of items. 



Money Mentor 
can also create 
"Smart Scrolls." 
A Smart Scroll 
knows the past 
relationships 
between Accounts 
and Budgets. 
Many of your 
transactions (car 
payments, mort- 
gages, and electric 
bill) are similar 
each month. 
Money Mentor 
can "Study" your 

accounts, so the next time you begin 
to enter one of these transactions, a 
default amount, budget label, tax 
status, and note are placed in the 
Scroll under your field. Of course, 
you can easily override the default 
easily by typing the correct informa- 
tion or choosing a different item from 
the Scroll. Sedona claims their Smart 
Scrolls save 70% of the required typing 
for an entry. After using it myself, I 
must agree. 



Defining Accounts 
And Budgets 

At the top of everything are the Ac- 
counts. Money Mentor defines Ac- 
counts as "the buckets in which Trans- 
actions occur." Money Mentor main- 
tains up to 30 different accounts. To 
create an Account, you must give it a 
name, define what type of account it 
is, and enter its starting balance. 
Accounts can be any one of the 
following types: Checking, Saving, 
Cash, or Bank Card. The default 
account type is Checking. 



Once Accounts are set up, you are 
ready to create Budget items. Money 
Mentor keeps track of up to 100 
income Budget items and 100 expense 
Budget items. You should make 
budget items for your salary, groceries, 
mortgage, car payment, cable TV, 




Eater fext Action to Be liken: |N*xt Actio*: 
Rttfisits 



Nunbtr lax Honth Cleared 




dividends, electricity, etc. A Budget 
item must be given a label (name) and 
a tax status (taxable or deductible). 
You can also define the tax status as 
"Ask Each Time," meaning you can 
make that decision as you enter 
transactions. 



iiHiiriiiiiiw 

Create Expense 

Expense 

Club Checking 

fica 

GHC Car Paynen 


Budget 


■™ 


™ 


"" 


™ 


^^ 


Jan Fell Kar Apr Hay • Year Total 


I 28M8 


266.66 


M.ee 


268,86 


288,86 


2,46s. 66 ■ 


. - - 


ss.ee 


66.63 


is.ee 


56.86 


56.66 


i,e79.iel 




66.88 


56,66 


EM8 


66.ee 


66.68 


MasterCard 

Medical 

Mortgage 

Other 


35.«8. 


35,68 


35.66 


35.88 


35.ee 


42e.ee! 


25.ee- 


ll.it 


25.66 


35,86 


25.ee : 


ne.egl 


I 7e3.ee! 




766.68 


766,68 


7ee.ee 


3,466,66 1 


iee.ee 


166.86 
566,86 


166.66 
566,66 


188.68 


166.66 


1,286,661 


Savinjs 
Softs/are Store 

1 IKS 


see.ee 


586,66 


566.66 


6, 888, eel 


35.68 


35.88 


35.88 


35.ee 


35.88 


118.66 


118,86 


ne.ee 


na.ee 


iie.ee 


1.323,66 1 


VISA 


' ; . flft = 


F2 Copy F3 Repeat F4 Exit 


Month Total 

:-■!■■■: 


■...,., 



want to compare budget to actual 
performance, but entering data as you 
create the budgets makes the most 
sense. With good budgeting, you will 
know exactly where your pennies are 
going. 

The screen into which budget amounts 
are entered is very similar to a spread- 
sheet screen. There is room for 
thirteen Budget items and Monthly 
Totals on the vertical axis. Five 
Months with a Yearly Total are on the 
horizontal axis of this screen. What 
you see is not all you get, though. 
The other months can be scrolled onto 
the screen using the left and right 
arrow keys; if you have more than 
thirteen Budget labels, they can be 
scrolled onto the screen using the up 
and down keys. The Totals always 
remain on the screen. 

A red box in the table indicates where 
you enter data. With the mouse or 
cursor keys, you can move the red box 
wherever you want. Data is entered 
with a Scroll and is placed in the 
space occupied by the red box. You 
can also REPEAT a value through to 
the end of the year, or COPY a value 
from one space into another. It can't 
get much easier 
than that. While 
amounts are 
entered, the 
totals, by Month 
and Budget item, 
are calculated 
automatically and 
displayed in the 
appropriate 
places. 



Entering Budget Amounts 

Once you establish Budget items, you 
should enter expected monthly expen- 
ditures and receipts. Monthly Budget 
amounts are not required until you 



Transactions 

After you 
establish your 
Accounts and 
Budgets, you 
enter Transac- 
tions. A Transaction shows where 
money enters and exits in your 
accounts and budgets. You'll spend 
most of your time entering Transac- 

(continued) 



Amazing Computing V3.1 ©1988 



25 



tions, so this is where you want the 
program to function best. Money 
Mentor is no Transaction slouch. 

Transactions have 6 parts: the NUM- 
BER of the Transaction, the DATE of 
the Transaction, the NAME of the 
source/destination of the Transaction, 
the AMOUNT BUDGET item to which 
this Transactions should be allocated, 
and a NOTE documenting the Transac- 
tion. 



The Number of the Transaction is 
entered first. If you are working with 
a checking account, and you are 
writing a check, this entry should be 
the check number. Once you establish 
the first number for this type of 
Transaction, Money Mentor 
increments the number for 
succeeding Transactions as 
the default. 

Money Mentor defaults the 
Date field to the date entered 
at startup. You can change 
the date by typing a new 
one or selecting one from the 
Scroll. 

The Name field is where you 
record the source or destina- 
tion of the transaction. If 
this is a check, type the 
name of the person to whom 
the check is being written. 
Later, if you choose the "Print Check" 
option, the Name entry is written in 
the "Pay to" line of the check. 

The Amount field is self-explanatory. 

You can allocate this Transaction to a 
Budget item by selecting or typing the 
appropriate Budget item's label. 
Again, the scrollable menu underneath 
the field saves you some typing. If a 
Transaction is divided between various 
Budget categories, you can select 
"Split" from the Scroll. 



"Split" is a really handy feature. Let's 
say you have written a check to your 
mortgage company for S750.35, and 
you want to allocate $650 of the check 
to interest, S50.35 to escrow, and the 
remainder to principle. First, enter a 
check to your mortgage company for 
S750.35 and select "Split" as the 
Budget label. Once you finish the 
check Transaction, a field labeled 
"Split Balance" holds the S750.35. 

Money Mentor now lets you enter 
Transactions to settle the split alloca- 
tion. As you enter Transactions, the 
"Split Balance" decreases. When this 
field is SO, you are finished allocating. 
Split allocations allow you to make 
very detailed budgets. 




Entering a Note helps document the 
Transaction. Again, if you arc issuing 
a check, you would normally write in 
the note field of the check. If you 
choose the "Print Check" option when 
the Transaction is complete, your note 
is printed on the check. 

When you finish entering a Transac- 
tion, you can do another Transaction, 
edit a previous one, or print a check 
for the last Transaction. Yes, you can 
print checks with Money Mentor. An 
order form is available in the back of 
the documentation for the proper type 
of checks. 



Smarter Than 

The Average Program 

After all your Transactions are entered, 
choose "Study Account" from the 
menu. This function creates and 
maintains the Smart Scrolls. You want 
to do this! Suppose you made a car 
payment to your bank this month. 
Next month when you indicate a car 
payment. Money Mentor defaults to 
the payment Amount, Budget item, 
and Note field from last month. Just 
click the mouse or hit the return key 
to accept the defaults. You won't 
believe how simple your repetitive 
transactions become. 

How Are You Doing? 

Once you have a few months under 
your belt, you will want to 
know how well you are 
following your budget. 
Money Mentor provides a 
number of reports that can 
bo sent to the screen, file, 
printer, or displayed in a 
graph (Sometimes a graph is 
more useful than a printed 
page of numbers.). Money 
Mentor provides more than 
50 status reports, including 
one noting how much you 
vary from Actual to Budget, 
and another with your Top 
20 Problem areas. 

When your bank statement 
or charge card statement 
arrives, choose "Balance 
Account" from the menu. With 
Money Mentor, to balancing accounts 
is as simple as indicating which 
Transactions have cleared and which 
have not. Money Mentor does the 
rest. You don't have to use a calcula- 
tor or scratch on paper. 

Inevitably, you will discover a check 
that was entered wrong, or you will 
want to know whether the cable bill 
was paid last month, or you will want 
to know how much the bank has 
charged for holding your money. You 
can find out these things with Money 



26 



Amazing Computing V3.1 ©7988 



Mentor's search capability. You can 
search by any of the Transaction fields, 
by Tax category, by whether it has 
cleared or not, or by month. Money 
Mentor lets you combine criteria for 
the search, so you can be as precise as 
necessary. Once you find a transac- 
tion matching the search criteria, you 
can edit it, continue the search, or 
print the Transaction. 



Wishful Thinking 

Money Mentor has plenty of strengths. 
However, there are a few things on 
my wish list. Nothing on my list 
shouid prevent anyone from using 
Money Mentor, though. On the 
contrary, Money Mentor is an excellent 
product; these are just things I think 
would make it even better. 

It would be nice to set up automatic 
accounts. These are accounts that are 
automatically entered on or after a 
specific date. This feature could track 
automatic withdrawals (without a 
check) from your checking account on 
a certain day each month. 

A calendar/reminder for entering 
important dates (such as when fees to 
organizations are due) would be 
useful. Many people need to be 
reminded of birthdays and anniversa- 
ries... 

Money Mentor has a limit of 100 
income Budgets and 100 expense 
Budgets. For most people, this will be 
more than enough. If you start 
making very detailed budgets, how- 
ever, this may become a problem. It 
might be better if you could determine 
how the maximum 200 budget items 
should be divided because the expense 
Budget items almost always greatly 
outnumber the income Budget items. 

When entering split allocations, you 
are limited to the same type of 
transaction for settling the split. This 
means that you can't enter a deposit 
for $2000 in your checking account 
and split the allocation to salary for 



Amiga-Tax II 

Tax Planning & Preparation Software 



Pay $69.95 once then receive 
Yearly Updates for 



i receive <k oa 
ONLY $29 



.95 




- All Schedules, All provinces, Gov't Approved 
1 - PRINTS tax returns No manual transcribing! 
I - Save Time, Money, and Aggravation 

- Useful all year for tax planning 

Send $10 for Mini Version & Save $10 on final cost.! 



Datamax Research com 



Box 5000, Bradford, Ontario lsz 2A6 



S3000 and S1000 taxes. The only way 
I found to mix income and expense 
allocations was to make a separate 
salary account and transfer $2000 to 
my checking account. 

Finally, it would be nice if Money 
Mentor supported more than one 
check type. It currently supports a 
two-part check. Support for smaller, 
single-part personal checks would be a 
bonus. 



Summing It Up 

Money Mentor will do more than just 
replace your checkbook. It will help 
you make budgets, track expenditures, 
and create financial plans. With 
Money Mentor, you can keep good 
records very easily. It makes excellent 
use of the keyboard and mouse. The 
menus and documentation are fairly 
easy to follow, and the data screens 
are sensible. Money Mentor's Smart 



Scrolls, which are probably the 
product's best feature, will save you a 
lot of typing time. 

If you are ready to keep track of your 
hard earned money, Money Mentor 
can certainly help you. 



•AC- 



Money Mentor 
list price $99.00 

Sedona Software 

1 844 Rancho Bernardo Road, Ste, 
San Diego. CA 92 1 28 
(619) 451-0151 



20 



Amazing Computing V3.1 ©19 S 8 



27 



AMAZING REVIEWS 



Investor's Advantage 

A Market Analysis Package for Charting Technical Indicators 



by Richard Knepper 

People Link: Stryker 



nniGH 



i m mmmmm 



BEL 

Q0QDQ 
DQQHI1 






In an age of increasing market volatil- 
ity, investors need superior stock 
selection techniques in order to create 
portfolios which minimize risks and 
maximize returns. Software Advan- 
tage Consulting Corporation has 
written a program which uses techni- 
cal indicators to select stocks which 
have performed better than the market 
average. The program also provides 
information to help investors time 
their buy and sell decisions to take 
advantage of market movements. 

Investor's Advantage allows you easy 
access to stock quotes through the 
Warner Computer Systems Stock 
Market History Data Base. The 
program can automatically dial up 
Warner and download the information 
you specify. 



How It Works 

Creating and maintaining files for the 
equities you want to track is relatively 
painless. Selecting "Create a New 
H.story File" from the main menu 
brings up a screen which allows you 
to specify the ticker symbol, the 
frequency of updating, the length of 
the moving averages, the P/E mul- 
tiple, and whether the file is for an 
equity or an indicator. 

Once you have created a file, you can 
add data to it, either manually or 
automatically. Manual addition is 
accomplished by selecting "Add to 
Existing History File" and entering the 
stock data required. In order to do 
this, you must have access to a 
financial publication. 



Automatic updating requires only a 
Hayes Compatible modem. A control 
program allows you to specify the 
equities and indicators you wish to 
update. (The control program also 
controls access to Telenet.) You must 
only tell the program which days to 
download. The entire process is 
extremely quick and easy. 

Maintaining your history files is quick 
and easy, too. When using a com- 
puter to help make investment 
decisions, it is essential to double- 
check the data the computer is using 
to make its decisions. Investor's 
Advantage allows you to view and 
edit the data in a file, as well as delete 
the entire file, 

(continued on page 30) 



A Poor Man's Guide to the Stock Market 



In today's volatile stock markets, 
timely and accurate information is 
vital. In order to assure profitable 
investments, the investor must be able 
to gather all available information and 
act on it immediately. Because this 
completeness is nearly impossible, 
most investors devise a system that 
allows them to make reasonable 
decisions based on incomplete infor- 
mation.: 



Two major schools of thought have 
developed. The first, the Fundamental 
approach, studies the relationship 



between risk and return in the market. 
This relationship equates supply and 
demand to yield a market price. The 
second school of thought, the Techni- 
cal approach, is not concerned with 
background data. Instead, it concen- 
trates on the movement of the market 
itself. Investor's Advantage is Techni- 
cal. 

Before you buy Investor's Advantage, 
you should get a feel for the 
program's theory. Fundamental and 
Technical investment strategics are 
drastically different, and there are 



arguments both for and against each. 
If you are going to use Investor's 
Advantage, you should know the 
limitations of its techniques and feel 
comfortable with them. 

The Fundamental approach has been 
widely acclaimed by the academic 
community. The major premise of this 
approach is that investors are only 
willing to buy a stock if their return — 
in the form of dividends and capital 
appreciation—is commensurate to the 
risk they face. If a stock docs not 
compensate the investor fairly for the 



18 



Amazing Computing V3.1 ©1988 



risk he faces, he takes his money 
elsewhere. This lowers the demand 
for the stock, and thus lower the price, 
so it provides an equitable risk/return 
relationship. 

The net result of this money move- 
ment is that the market prices all 
equities fairly. Investors can then 
build portfolios that reduce the risk of 
having alt their eggs in one basket. 
(An example of this risk is investing in 
one company. The company may be 
doing fine one day and lose every- 
thing in a $12 billion lawsuit the next.) 
These portfolios can also be structured 
to provide specific levels of return, as 
a percentage of market return, both 
positive and negative. 

There are two major arguments against 
Fundamental analysis. The most 
important is that it is too difficult to 
determine the exact level of risk in a 
specific equity. Historical risk is 
usually used, but this is only an 
approximation. The second argument 
is that the risk/return relationship is 
not always rcpeatable when external 
market conditions have been the same. 
This argument is less pervasive and 
only indicates investors are not using 
complete information. 

Technical analysis is the system most 
often used by professional traders. 
They believe the fundamentals affect- 
ing a given equity cannot be known 
soon enough to act profitably. They 
then conclude that unknown changes 
in the fundamentals are reflected in 
the price action of the equity. The 
analyst believes price changes form 
patterns similar to past patterns. 

Technical analysis can be subdivided 
into major disciplines. The first is 
charting, which attempts to take 
advantage of short term fluctuations in 
price. The technician must closely 
follow the market and be willing to 
take very short term positions. Most 
true chartists do not take positions 
lasting more than one day. 



The second type of technical analysis 
is the tracking of technical indicators. 
This approach is very similar to the 
first, but is more concerned with 
longer term movements in the equity. 
In most cases, this technician collects 
information either daily or weekly. 
This time-frame is followed deliber- 
ately to eliminate short term volatility. 
The technician then tries to interpret 
the information for long term trends. 

The major difference between the two 
technical disciplines is that charting 
attempts to determine where the 
market will move in the short term, 
while tracking technical indicators tries 
to determine where the market is 
moving in the long term. 

Both methods have pitfalls. Chartists 
must receive information in a. very 
timely manner. This problem makes 
charting an unrealistic too! for inves- 
tors not on the exchange floor. 
Charting is difficult even if a real-time 
ticker is available.. Most investors 
should not consider short term 
charting because they will not be able 
to properly time their buy/seLl 
decisions, and will usually get in just 
before the market reverses. 

Tracking technical indicators is much 
more feasible for the average investor. 
These indicators are more useful for 
long term investment strategies. They 
indicate major market movements and 
help the investor time his entry and 
exit in the market. The main problem 
is that trends are not easy to spot. By 
the time indicators have signaled a 
clear trend, it may be too late to take 
advantage of it. This often means the 
investor gets in too late, buying the 
market tops and selling the bottoms. 
He is then doing worse than he would 
be if he weren't using any information 
at all. 

There are also problems with trading 
from a "contrarian" standpoint. This 
theory should be used only after the 
market has demonstrated a clear trend. 
Even then, it is difficult to determine 



when the reversal will happen. Often, 
one can begin to fade the market (take 
a position opposite to the market's 
movement) just as it begins to build 
momentum. A number of large Stock 
Index traders took contrary opinion 
stances during Black Monday and ■.. 
were looking for new jobs on Tuesday. 

Even though there are valid arguments 
against both fundamental and techni- 
cal trading, that doesn't mean that 
they aren't both useful. Each system 
provides valuable information which 
can make the difference between 
success and failure in the market. 
When I was actively trading futures at 
the Chicago Board of Trade, I took 
long term stances, using fundamental 
analysis as my primary source of 
information. I tempered these stances 
with information gained through 
analysis of technical indicators. I 
timed my entry into the market 
through charting. 

Not everyone has twelve plus hours! : 
per day for market analysis. If you 
want to be in the market and make 
your own investment decisions, I 
suggest following the fundamentals 
and using the technicals to temper : 
your information. Don't worry about 
timing your entry exactly. Entry time 
usually won't make or break a long 
term position. If you don't have the 
time to follow the market closely, 
consider investing in a fund. Funds 
give you the diversification you need 
and allow reasonable returns without 
spending a great deal of time. 

If you are serious about investing in 
the market, Investor's Advantage gives 
you the information you need in a rea- 
sonably timely manner. The price of 
software and information retrieval is 
low enough to make it easily afford- 
able for armchair investors. Remem- 
ber, Investor's Advantage is a tool to 
help you make informed investment 
decisions. It is not ah end all, nor is it 
intended to be. 



Richard Knepper 



Amazing Computing V3.1 ©1988 



29 



In summary, the process of creating 
and maintaining the equity and 
indicator history fiics is simple, 
allowing you to concentrate on the 
primary purpose of the program: 
helping you make money. 



What Investor's 
Advantage Tracks 

The program uses its historical 
database to calculate and display a 
number of different technical indica- 
tors. 

Moving Average is calculated by 
taking the price of an equity over a 
period of time and calculating the 
average. For example, a thirty week 
Moving Average is based on the last 
thirty weeks of data; each week's 
Moving Average changes when a new 
week is added and the oldest week is 
dropped. The Moving Average 
calculation factors out day-to-day 
volatility and indicates an overall 
trend in the equity. The program 
allows three different Moving Average 
durations to be specified. Short, 
intermediate, and long-term trends can 
be compared. 

Price Momentum shows the relative 
change occurring in the three Moving 
Averages. This is done by dividing 
the current price by the oldest price in 
the Moving Average. Thus, a thirty- 
week Moving Average Price Momen- 
tum is equal to the current price 
divided by the price of the equity 
thirty weeks earlier. 

High/Low Chart displays the high/ 
low/close, the Relative Strength, and 
the volume of shares traded. The 
chart generated is the same type 
published in newspapers. The most 
obvious use for this chart is to 
perform technical analysis. (As 
explained in "A Poor Man's Guide to 
the Stock Market," technical analysis is 
not the same as analysis of technical 
indicators.) 

Relative Strength calculates the 
change in the Moving Average for alt 
equities and compares them. This 



provides a ranking system to indicate 
those stocks which have demonstrated 
superior performance. This is useful 
to the technician who wants to create 
the best possible portfolio of stocks. 

Monthly Percentage Change calculates 
the percentage change in each equity 
that has occurred month-to-month for 
the past thirteen months. 

Daily Stock Market Barometer 
displays five indicators that give 
ins.ght into the movement of the 
market as a whole (see Figure 1). 

1. DJIA displays the daily movement 
of the Dow Jones Industrial Average. 

2. Advance/Decline Line displays an 
indicator of the number of stocks that 
rose in value versus the number of 
stocks that dropped. This gives an 
indication of the sentiment of the 
market. 

3. Odd Lot Short Ratio represents a 
contrarian viewpoint, which assumes 
that a group of investors are predict- 
ing a market movement, and that their 
predictions will be wrong. If the Odd 
Lot Short Ratio is increasing, this 
group is shorting the market (selling 
stocks), and the market should move 
upward. If the ratio is declining, they 
arc long (buying stocks), and the 
market should decline. 

4. Put/Call Ratio, another contrarian 
indicator, reflects the attitude of 
options buyers, who arc, for the most 
part, speculators. Puts are bets that 
the market will move lower; Calls are 
bet-; that it will move higher. If more 
speculators arc buying Puts than Calls, 
they arc predicting a downturn in the 
market. A contrarian would then 
believe the speculators to be incorrect, 
and expect a market upturn. 

5. Overbought /Oversold Ratio is a ten- 
day composite of the number of stock 
advances and declines. A high value 
indicates that the market has been 
under heavy buying pressure. The 



number of future buyers should drop 
off soon, and the market should 
decline. 



Weekly Stock Market Barometer 

displays five indicators which give a 
more generalized impression of the 
market movements (see Figure 2). 

1. DJIA indicates the weekly move- 
ment of the Dow Jones Industrial 
Average. 

2. NYSE indicates the weekly move- 
ment of the New York Stock Exchange 
composite index (a.k.a. Big Board). 
This lists a greater number of stocks 
and can give a more accurate indica- 
tion of the market sentiment. 

3. New Highs/New Lows lists the 
number of stocks which have made 
new highs or new lows. Following 
the precept that "what goes up must 
come down," it is expected that a 
large number of new highs indicate a 
market which has reached its peak and 
will soon decline. High numbers of 
new lows indicate an oncoming 
market upswing. 

4. Specialist Short Ratio attempts to 
track the sentiment of the floor special- 
ists. Specialists are floor traders 
assigned the task of making the 
market for a particular equity. They 
are usually better-informed than the 
populace and can better predict the 
movement of their stocks. If they are 
selling stocks, then the Short Ratio will 
be high and a downturn can be 
expected. 

5. Twenty Most Active Indicator 
compares the sum of the last three 
weeks' advances to the sum of the 
declines. An increase in the indicator 
shows underlying market strength, 
while a decrease indicates weakness. 



The Manual 

The program comes in a green plastic 
folder about the size of a largo paper- 
back book. The manual is about 

(continued on pa ge 32} 



30 Amazing Computing V3.1 ©19S8 












THE AMIGA® COMPUTER STARTER KIT 

WORDPROCESSOR • SPREADSHEET • DATABASE 



Have all of the above instantly at your 
fingertips on ONE diskette at ONE low price 
in ONE package. THE WORKS! is ONE com- 
plete system. Never again will you move 
from one program to another, forced to 
learn a new manual with new instructions. 
In THE WORKS! each module uses similar 
pull down menus and familiar commands. 
You said "Give me the works". Now in 
ONE package, you get THE WORKS! 
Included is a powerful spreadsheet 
module (Analyze!) that is as useful in the 
home as in the office. Whether for your 
personal budget and check register or your 
company's accounting and forecasting 
needs, the versatile pull down menus and 
keyboard shortcuts make this module easy 
to use. Its multicolor 3-D graphs, special 
macro language and compatibility with 



Lotus 1-2-3 make it powerful as well. 

The full featured word processing 
module (Scribble!) includes a spelling 
checker and mail merge facility. Full sup- 
port of the Amiga clipboard is provided as 
well as complete styling control. You may 
mix bold, italic, and underline in various 
combinations on a single line, and show 4 
documents on the screen. 

The professional database module 
(Organize!) helps you collect and manage 
information or data easily. The reports you 
prepare are completely customized and can 
be printed to paper, screen or disk. Por- 
tions of records may be blocked for con- 
fidentiality. From a recipe file to a customer 
mailing list, all information is at your 
fingertips. 




















Developed by: 




Scribble!, Analyze!, Organize! 

priced separately total J 349-85 

Now... The Works! 
5 



only 



$199* 



Micro-Systems Software 

Quality Software Since 1979 

Amiga is a registered trademark of Commodore-Amiga. Inc. Lotus 1-2-3 is a trademark or Lotus Development Corporation. MSS Works!, Analyze!, Scribble! and Organize! are trademark; of Micro-Systems Software. 



See your local dealer or call: 

Brown-Wagh 
Publishing 

1-800-451-0900 
1-408-395-3838 (wcau/omw 

16795 Lark Ave., Suite 210, Los Gatos, CA 95030 


















seventy pages long, includes a brief in- 
troduction, and explains how to install 
and run the program. 

The manual is very straightforward 
and is tailored to the novice user. It 
gives clear and concise instructions 
explaining each of 
the program's 
functions, along 
with its signifi- 
cance. I found that 
the manual com- 
plemented the 
program quite 
well. The only 
thing missing is an 
index, but an index 
isn't absolutely 
necessary, since the 
manual is catego- 
rized by menu 
selections. 



will find it a hindrance when tracking 
equities over long periods of time. 

Although I found the program quite 
easy to use, the onscreen menus were 
too cluttered. The options on the 
main screen should have been sepa- 




The manual does 
not, however, 

explain the indicators the program 
tracks. It gives only a brief synopsis 
of each indicator, similar to the 
descriptions I included in this article. 
1 certainly wouldn't feel comfortable 
using this trading system based solely 
on the information in the manual. 
Since the program is inexpensive, I 
recommend that each purchaser also 
buy a book on technical analysis and 
indicators. Many good references are 
available. 



Problems and Limitations 

Investor's Advantage has been im- 
ported from the IBM-PC/XT/AT/ 
C\onc/ad nauseum family, and there 
are a few residual quirks. Not all of 
them can be blamed on the MS-DOS 
operating system, but MS-DOS is a 
good scapegoat. For example, none of 
the history files you create can have 
the ."dat" suffix. This file structuring 
format is not necessary on the Amiga, 
and should have been removed when 
the program was ported. Another 
problem is that history files have a 
maximum of 229 records — far too few. 
There is no good reason for this 
limitation, and many serious investors 



Figure One: Daily Stock Market Barometer 



rated into functional groups to make 
selection easier. In the program's 
defense, selections can be made by 
choosing the selection number, by 
pointing at and clicking on the 




Figure Two: Weekly Stock Market Barometer 

selection desired, or by using pull- 
down menus. Although the pull- 
down menus arc organized function- 
ally, a cluttered screen is still annoying 
to look at. 

The graphs may also appear a bit 
cluttered at first, but this is due to the 
amount of information being pre- 



sented. Often a single graph shows a 
number of indicators, each with its 
own vertical axis. This can be confus- 
ing, until you become familiar with 
the graphs. 

Another problem is that the program 
uses standard Workbench colors, 
which means when graphs are printed 
(They are printed in inverse mode.), 
the background is slightly gray. This 
is not only annoying but also wears 
out ribbons quickly. There is no 
Preferences on the disk, so the system- 
configuration file must be changed 
from another Workbench and placed 
on the disk, either by direct copying or 
by using Preferences with DEVS: 
assigned to the Investor's Advantage 
disk. 

The program is slowed considerably 
by disk access. The menus are 
organized by indicator, so whenever a 
menu selection is chosen all stocks 
must be reloaded from disk. Tracking 
all of the indicators for a particular 
stock can be time-consuming. It 
would have been much simpler to 
allow you to select a stock and then 
have the program chart its technical 
indicators, rather than 
make you select the 
stock after choosing the 
indicators. 

The program should also 
include some method for 
unattended printing of a 
series of graphs. As it 
stands, it takes a consid- 
erable amount of time to 
print out graphs for 
even a small number of 
equities. Batched 
printing would allow 
you to print your graphs 
while you went to work, and then 
have them ready when you came 
home. 

Investor's Advantage may not operate 
smoothly if you are very low on 
memory. Of course, this shouldn't be 
a serious problem, since anyone 

(continued on page 34) 



32 



Amazing Computing V3.1 ©1988 




At Northeast Software 

Group, Minor Miracles 

Are Easy, 

Major Miracles 

Take a Little Longer. 




li KHik ■ lild* while loot*! hi m Lj fit 

RflUSKB fLVS tt the pmrn -hrre >uu 

im (W BK.rwrtadiLn^^i PUBLISHER PLUS 

■ onauw a.ui DuUihi K BUSKER 




Publisher Plus outputs to a wide range of printers: any preferences-selected printer, dot matrix or any PostScript laser printer or typesetter. 



See What You Can Do With 



We listened. To Publisher 1000, we add- 
ed more capability; increased the speed, 
eliminated the copy protection, reduced 
the price, and kept the easy-to-use in- 
terface. We now call it Publisher 
Plus. 

It's a perfect fit for the Amiga 500, 
although it also fits well with the Amiga 
1000 and 2000. Quickly you can create 
all kinds of printed material — news- 
letters, signs, reports, menus — 
without a complication or expense. 

With Publisher Plus, text is easy to 
type. Just draw a box, any size or 
shape, like a newsletter column. Either 
type directly into the box, or read the 
text from a word processing program. 
It's that easy. 



Developed by: 



N 



W 



Northeast 

Software 

Group 



PUBLISHER 
$QQ95 

■* ^T ^r introductory 
price 



To add graphics, simply draw with 
Publisher Plus' patterns, or create your 
own with the pattern editor. IFF pic- 
tures and scanned images can be resized 
or cropped to fit your layout. 

Get a close-up view using "smooth- 
scrolling" or take a full-page view. 
When you're ready, print it. Publisher 
Plus includes an entire set of fonts for 
dot-matrix and PostScript printers. If 
you don't have a laser printer, save 
your PostScript layout on disk and then 
print with someone else's laser! 

It's for the novice. It's for the ex- 
pert. Publisher Plus — it's for you. 
Try it today. 



Publisher 1000— PLUS... 




■*■ PostScript laser support 

► No dongle 

► Automatic font sizing 

► Cut/copy/paste text 

► More patterns 

► Improved performance 




See your local dealer or call: 

Brown-Wagh 
Publishing 

1-800-451-0900 
1-408-395-3838 (mcou/onm) 

16795 Lark Ave., Suite 210, Los Gatos. CA 95030 



Amiga Is a registered trademark ot Cummodore-Amlga, Inc. Publisher 1000 and Publisher Plus ire trademarks of Northeast Software Group. 



considering investing in the stock 
market should have enough money to 
go out and purchase expansion 
memory. At least this program gives 
you a new excuse to spend money on 
your Amiga. 

Perhaps the most serious limitation I 
encountered with Investor's Advantage 
is that, in order to utilize the Auto 
Update mode, you must have a Hayes 
Compatible modem. You can't get by 
on a pseudo-Hayes like I own. Or, 
more properly, used to own — this 
program gave me an excuse to buy a 
Hayes Compatible. Without the Auto 
Updating capabilities, the program is 
severely limited. You can still enter 
all records by hand, but this can be 
quite time-consuming. 



really need to be flashy. Investor's 
Advantage is very easy to use and 
provides rapid information assimila- 
tion. It isn't as timely as a tic-chart, 
but for most investors it will prove 
more useful. It allows the investor to 
ignore short-term price fluctuations 
(which they usually can't do anything 
about anyway) and focus on longer- 
term trends. This is probably the safest 
method for the private investor to use. 

The program is extremely user- 
friendly, allowing most operations to 
be performed using only the mouse. 
The Auto Updating utility may be the 
most valuable feature of the program, 
allowing unaided updating of your 
information. I did notice that the 
Auto Updating became somewhat 
confused when dealing with my 



Before you purchase this 
program, you should either 
determine the extent of your 
modem's Hayes compatibility, or 
(preferably) try out the program 
at your dealer's, using your 
modem. (At press time, I was 
informed by David Miller, 
author of Investor's Advantage, 
that versions after 1 .05 would 
also support the Avatex modem, 
one of the most popular mo- 
dems purchased for the Amiga. 
I was not able to confirm Avatex 
compatibility for this review.) 



Summary 

As much as ! like Investor's Advan- 
tage, I hesitate to give it a blanket 
endorsement. The program certainly 
docs everything it claims to do. It is 
also priced fairly and provides an 
elegant method for updating files and 
providing useful graphs. 

My main reservation concerns what 
the program actually docs. Blind faith 
in a system you are not completely 
familiar with is financial suicide. 
Tracking technical indicators is only 
one available investment method, and 
is not necessarily the correct one. I 
did not feel that it was fair to address 
this topic in the actual Investor's 
Advantage review, so I have given a 
brief overview of different investment 
strategies in "A Poor Man's Guide to 
the Stock Market." 



■ M I Si 



m.ti 

•■••• 



3 



h 



12.. 



UUi- 



-^■~ 



2U,58— 
225.12— 



18.J4- 



TT7 



■J]' I'll 



W 



T^— -- 









If you feci comfortable making 
investment decisions based on 
technical indicators, or even 
combining this information 
with other criteria to help you 
make decisions, then by all 
means purchase this program. 
If Investor's Advantage does 
nothing more than help you 
make the correct investment 
decision once a year, then it 
has paid for itself. 



One final point to consider before you 
make your purchase decision is the 
added cost of information retrieval. If 
you are a serious investor, you should 
not be swayed, as the annual cost for 
weekly quotes on thirty equities costs 
about $40.00. This cost, when com- 
bined with a S48.00 subscription fee, is 
comparable to the commission on a 
single stock purchase. 



Things Get Better 

Although the program has a number 
of minor flaws and restrictions, I feel 
that these are outweighed by the 
advantages. The best declaration I can 
make is that the program works. A 
business program like this doesn't 



Figure Three: 5&P 500 Index 

"noisy" phone line. The program 
often received garbage signals and 
then had to log off. I had to use the 
delete history function to delete the 
bad records, and then log on again. 
This was not a major problem, but you 
should expect a few difficulties if your 
phone system often has a lot of static. 

The graphs created by the program arc 
not of the highest quality imaginable, 
but they arc certainly adequate. For 
the serious technical investor, this 
program is indispensable, providing 
the same information as most newslet- 
ters do, but on a more timely basis. 



About the Author 

Richard Knepper is a registered 
Commodities Broker. He has an 
M.B.A. in Finance from the University 
of Wisconsin. He works as a consult- 
ant for J.L. McKinzie & Company, a 
commodities brokerage firm in 
Chicago. The opinions expressed in 
these articles are not investment 
advice. 

•AC* 



Investor's Advantage $99.95 

Software Advantage Consulting Corp. 

37346 Charter Oaks Blvd. 

Mr. Clemens, Ml 46043 

(313) 463-4995 



34 



Amazing Computing V3.1 ©1988 




Character Generator 



LET lER I N G 



QylSShi ^RNUI f#r/tff 

Mies HMmUm 



shadows, 3-D, strobe 

adjust light depth and location 

italics, bold and underline 



easy-to-use menus 

select shadows, colors, lighting 

choose palettes and colors 



:-■:■; 
- 


no 





-" ~ 


tout 


ii* 




Em 


6"» f < A 
lea 


▼ > A 

brtrkrth 
Fudh 


Light lirtttin 

□■ 
■■ 


brts 

Alt 
htfi 


lot I* 


fci/Un/tttf 


■ 


Ml 
tllltt, 


.:; 






iwntt Jilttlt 


DUKQ 



SAVE S50,000! TV.TEXT brings 
capabilities of the most expensive 
character-generators to you and your 
Commodore- Amiga personal computer. 
Pocket all that money while you create 
professional quality lettering for presenta- 
tion graphics, or live video production 
with Genlock. TV*TEXT supports the 
mouse, medium/high/overscan screen 
resolutions, the full Amiga palette of 4096 
colors, all IFF images, and NTSC/PAL 
video standards. 

You can use any Amiga fonts, such as 
Zuma Fonts, workbench fonts, etc. Spac- 
ing can be adjusted and characters can be 
stretched, squeezed or even rotated! Text 
can be positioned with left/right justifica- 
tion or centering. 

Make titles exciting with rendering at- 
tributes such as italics, bold, underline, 
outline, edge, extrude (3D), cast/drop 
shadows and strobes. Create attractive 
backgrounds using wallpaper or tile pat- 
terns. Then captivate your audience with 
special effects made by applying those at- 
tributes to lines, boxes, circles and 
ellipses. 

If you want to make your picture look 
special, try TV* TEXT! 



i'V' 



raSpaper wallpaper wallpaper wallpaper ■Jpaper wallpaper 
xr warper wallpaper wallpaper wallpaper wall; | 

alpaper 



1CEIFHSF 



/alpaper waflpaper wallpaper sa|paper wallpaper wajpaper 
xr wsfyaper wallpaper walpaper walpap* waft 



wallpaper or tiled backgrounds 
stretch, squeeze, rotate text 
brushes get rendered too 




extruded (3-D) with drop shadow 
horizontal lines with outline & shadow- 
different font styles and sizes 



Developed by 




Zuma Group 



Incredibly priced at: 



$99 



95 



Other products by Zuma Group; 

Zuma Fonts Vol. 1, 2, 3 - 534.95 each 

TV*SHOW - $99.95 



See your local dealer or call: 

Brown-Wagh 
Publishing 

1-800-451-0900 

1-408-395-3838 (in California) 
16795 Lark Ave., Suite 210, Los Gatos, CA 95030 



Amiga is a registered trademark of Commodore-Amiga, Inc. TV-TEXT. TV'SHOW and Zuroa Fonts ire trademarks of The Zuma Group. 






The Ultimate Video Accessory Part II 



■ ■ 



•:-"■:■:-■:■:: >:■;■:■:■ //>/:-: -x-x^w :■.■■: ■>;■:-:■':■;■:■ x-MwX ■:■;■;-: ;-!■:■;- .%■:■.->: .-:■>:-.■;-. ;■:•"-:-.-.- ■. -x- >>.■;•; -;-l-^. ■:■■;■.-. .;■ 

Adding computer graphics to your videos is easy, but you must take careful steps to get the highest quality. 

by Larry White 



You've seen videos ranging in caliber 
from home movies to your favorite TV 
shows; from professional business 
presentations to music videos and 
slick, lavishly produced commercials. 
What makes some video productions 
more polished and exciting than 
others? 

Computer graphics are part of the 
answer — from the simplest title or "800 
number" floating innocently over the 
action, to fully animated 3D graphics 
that can take you to places existing 
only in the imagination of the artist. 
When properly used — not overused — 
computer-generated video effects can 
add a lot to a video production. 

Video production houses may spend 
tens of thousands of dollars for com- 
puter graphics systems, but for only a 
few thousand dollars, you can gener- 
ate many of these sophisticated effects 
with a Commodore Amiga and some 
sophisticated software. Programs for 
Amiga video applications range in 
price from under S50, to as much as 
S299. 



Let's take a closer look at 
some of these applications, 

and the basic software, 
computer hardware, and 
video equipment you'll need. 



Titling and 
Character Generation 

You've just returned from an 
exotic vacation, and you've 
shot a few hours of exciting 
video with your new Camcor- 
der. When you show the 
tapes to your friends, they're 
polite, but you sense you 
never really grabbed their full 



attention. Crabbing the audience with 
your opening shot is a good video 
technique. Let's boot your Amiga and 
add some touches that will make your 
friends ask to see your video again 
and again. 

With a little imagination, you can use 
almost any program to create a title 
screen. Let's begin with the simplest 
title screen, a computer generated 
screen. You'll record the screen 
exactly as it appears on the computer 
monitor and insert in front of your 
original video (camera or Camcorder 
image). Normally, this piece is 
inserted as you copy and edit your 
video onto a second video cassette 
recorder. You should leave a few 
extra seconds of blank tape at the 
beginning, which you can later replace 
with the title screen. Most profes- 
sional videographers do not record on 
the first 30 to 60 seconds of a tape, 
allowing for proper tape threading in 
the VCR and insuring that the ma- 
chine is up to proper speed for 
copying and editing. 




Figure I: 
Text uses 



Simple title screen created using DeluxePaint II 
Zuma fonts for large, clear titles. 



Title screens should be simple, with 
large text for easy reading because 
they appear for only a few seconds 
(See Figure I.}. Any paint program 
can be used to create a title screen, 
although I prefer one with good text 
handling, such as Deluxe Paint II. I 
like to add larger fonts (such as the 
Zuma fonts) for clean, easy-to-read 
titles. Express Paint promises to fill 
this criteria with color fonts available 
in their next version; I'll comment 
more after I try it first hand. Remem- 
ber, your final quality will probably be 
far below what you're accustomed to 
seeing on an RGB Amiga monitor. 

Many programs are specifically de- 
signed for video titling applications. 
JDK Images CGI (Character Generator 
1), emphasizes crisp, clear type in 
bright colors with appropriate shadow- 
ing for emphasis (See Figure 2.). Up 
to 100 screens of information can be 
stored and cycled using various 
transitions for effect. 

Aegis Titler, TV Text, and Deluxe 
Titler (formerly Station 
Manager EF/X) arc all 
designed specifically for this 
type of operation. Some 
programs, like Deluxe Titler, 
offer animation capabilities 
which let you fly text or 
graphics across the screen. 
(You can get similar results 
with Deluxe Video, but you 
can do so much more with 
this program that it will get 
special attention in another 
article.) Like most software, 
each program has strengths 
and weaknesses, as well as 
various price points. I'll go 
into each program in detail 
later in this series. 

(continued on page 38) 



36 



Amazing Computing V3.1 ©1 988 



tffn 




FULL COMPATIBILITY FOR FULL FLEXIBILITY 



• TV* SHOW is compatible with Amiga 500, 1000 
and 2000 models (1 MB recommended) 

• All IFF graphic formats including HAM 

• Overscan screen sizes of over 700x480 pixels 

• NTSC/PAL video standards 

• Genlock for video production 



Developed by 



Incredibly priced at: 



Now you can produce your 
own animated presentations on 
the Commodore-Amiga or video 
tape. Use any IFF pictures and 
over 50 exciting transitions in- 
cluding rolls, reveals, wipes, 
flys, fades, color cycling and 
more. Each picture can remain 
on screen for a preset time or 
until a keyboard entry is made. 
Now really get fancy. Fly or 
wipe object brushes onto the 
screen. Experiment all you want 
— you can play any portion of 
your script at anytime during 
your editing session! Incredibly 
easy. Lights, camera, ACTION! 



SHOWCASE YOUR 
COMPUTER PICTURES WITH 

TV* SHOW 





$99 



95 



Zuma Group 



Other products by Zuma Group: 

Zuma Fonts Vol. 1, 2, 3 - $34.95 each 
TV*TEXT - 59995 



See your local dealer or call: 



Brown-Wagh 
Publishing 

1-800-451-0900 
1-408-395-3838 ft, aupmMI 

16795 Lark Ave., Suite 210, Los Gatos, CA 95030 



Amiga Is a registered trademark of Commodore-Amiga, inc. TV' 'SHOW, TV -TEXT and Zuma Fonts are trademarks of Zuma Group, Inc. 



Amiga Computing 



The Video 



Figure 2: CGI by JDK Images produces clear, crisp titles 
with shadows, lines and patterns available. Keep title clean 
and simple to be effective. 



The Amiga 
controls its own 
resolution, at least 
when it loaves the 
computer. Amiga 
resolutions range 
from lo-res (320 
horizontal X 200 
vertical), to hi-res 
(640 h X 400 v). 
Not all software 
can work with all 
resolutions. The 
more resolution 
and colors in the 
image, the more 
Amiga memory 
you need to 
manipulate those 
images. 



After you've created and stored your 
title screen on disk, how do you 
transfer it to video tape, and what 
kind of video quality can you expect? 



Technical Considerations 

The amount of detail in an image is 
determined by the resolution. In 
video, the vertical and horizontal 
resolution are seldom equal, since they 
are controlled by different factors. 
Vertical resolution is limited by the 
525 scan lines of the NTSC video 
system. Since all these lines do not 
appear on the screen (They can carry 
test signals, closed caption information, 
even communications between TV 
stations.), the actual limit for vertical 
resolution is below 500 lines. Horizon- 
tal resolution depends more on the 
amount of information carried in the 
video signal (bandwidth), and other 
factors, like the interaction of colors 
and the precision of electron beams 
and phosphors. 

The total amount of information which 
can be produced is calculated by 
multiplying the horizontal resolution 
by the vertical resolution. The result 
is the total number of picture elements 
(pixels) in the system. The more 
pixels you have, the more detail in the 
overall scene. 



The Amiga offers a choice of resolu- 
tions, but your video recorder has a 
specific limit. Most consumer-grade 
VCRs can typically record between 
200-230 horizontal lines, although the 
new super VHS and ED (extended 
definition) Beta recorders can record 




Figure 2a. Colors bars, placed on the tape before the first 
scene or title, let you adjust the TV or monitor for optimum 
performance. This one was made with Deluxe faint II. 



details as fine as 400 or 450 lines. This 
isn't as bad as it sounds, when you 
consider the best current broadcast 
signals in the US don't exceed 330 
lines of horizontal resolution. 



Unfortunately, resolution is not 
absolute. If you copy an image with 
640 horizontal lines onto a VCR with a 
maximum horizontal resolution of 250 
lines, the recorded result contains less 
than 250 lines. This discrepancy is 
caused by signal loss in the cabling 
and other image factors. It's impor- 
tant to know the best you can hope for 
(in this example) is only 250 lines. 

Another problem is that video infor- 
mation is stored on tape as an analog 
signal, unlike computer data which is 
stored digitally. Each copy is subject 
to quality loss, limiting the number of 
generations (copies of copies) which 
you can make with reasonable quality 
results. 

You may have seen ads for digital 
VCRs; although they may deliver 
slightly improved picture quality, they 
are just analog recording systems 
which use digital processing to 
provide a better picture and digitally 
processed special effects. 



Of course, there's 
more to video 
image quality than 
resolution and 
pixel count. Color 
rendition and 
interimage effects 
can also affect the 
final picture. 
Similar to resolu- 
tion, the more 
generations you 
copy, the worse 
these effects. 

Don't be disillu- 
sioned by the lack 
of quality in your 
video image. You 
must understand 
these factors, so you can control them 
and produce the highest possible 
quality your equipment allows. You 
can take easy and relatively inexpen- 
sive steps to improve the video image: 
You can use shielded cabling with 
gold plated contacts wherever possible, 

(continued on page 40) 



38 



Amazing Computing V3.1 ©1988 



Softwood 

WRITE & FILE 

Integrated Word Processor/ Database Manager 

Multiple Font Styles, Spell Checker and Powerful Features 
make Write & File a SUPER Word Processor. The Integrated. Database Manage 

for Reports and Mail Merge MakeJkSUPERB ! 



► Features unique "Smart Mouse" and "Undo"! 

► Search/replace; headers, footers; hor/yert. rulers 

► Prints in graphics (pretty) or text (fast) modes 

► Includes over 100,000 word dictionary 

► Supports foreign letters, paper size, 
currencies 




See your local dealer or call: 

Brown-Wagh 
Publishing 

1-800-451-0900 

1-40%-595-mS (m California) 

16795 Lark Ave., Suite 210, Los Gatos, CA 95030 



Amiga Is a registered trademark of Commodore-Amiga, Inc. Write & File is a trademark of Softwood Company. 



and use the 
shortest possible 
cables throughout 
your system. If 
you want to go a 
step further, an 
under-S70 signal 
booster (often 
misnamed "en- 
hancer") can cut 
down on signal 
losses when 
making copies. 
There are also more 
expensive ways of 
processing the 
image which will 
be discussed in 
another article. 




Figure 3. Video heads are located inside a large, silver 
drum. Tape is wrapped around and moves by as the drum 
rotates. 



VCRs for Desktop Video 

A more immediate concern regarding 
our desktop video applications is the 
quality of the video image when you 
stop and start the VCR. Many VCRs 
produce a short burst of video noise 
when you start a new recording. This 
would cause an unacceptable result 
each time you cut (switch) to a 
computer-generated graphic. To 
understand why this happens, we 
need to discuss how VCRs record 
images. 

An audio recorder works in linear 
fashion. The tape moves across the 
magnetic recording head in a straight 
line. The faster the tape moves, the 
more information you can record 
because more magnetic sensitive media 
(audio tape) passes by the head at any 
given time. Unfortunately, video 
information is much more complex 
than audio, and video must also 
contain a sound track to be effective. 
To capture all this information on a 
moving tape, the tape must either be 
extremely long as compared to the 
same play time for audio, or very 
wide (Professional video is often 
recorded on one inch tape.). 

Wrapping the tape around a drum at a 
slight angle and spinning the heads as 
the tape travels past the drum is 



another solution. By placing several 
heads on the drum, you can pack 
information tightly on the tape 
diagonally, known as helical recording. 
The audio track is still recorded in a 
linear fashion using separate heads 
placed along the edge of the tape path. 
(See Figure 4.) This can be used to 
great advantage, since many VCRs 
feature audio dubbing, which lets you 
replace the sound track independent 
from the video. Some VCRs advertise 
stereo sound; a second sound track is 
recorded helically between the video 
tracks, but when you audio dub, only 
the linear sound track is replaced. 



with enough precision along the 
helical path. The solution involves 
using a "flying erase head" which 
spins along with the normal recording 
heads. Although the technology is 
rather simple and straightforward, it 
can add unnecessary expense for a 
feature not needed for most applica- 
tions (which is why these heads are 
often not included in today's highly 
competitive models). See Figure 5 for 
a comparison of normal and flying 
erase heads. Most 8mm recorders, and 
many top of the line models in all 
formats, offer flying erase heads. If 
you're buying a VCR for desktop 
video, I'd strongly recommend you 
insist on this feature. 

If you already have video equipment, 
or can't afford to go after the more 
expensive models, you can still create 
clean edits. Whenever possible, keep 
the recording VCR in record mode, 
using the pause control (instead of 
"stop") to freeze the tape between 
scenes. Use a video switcher to cut 
from one video source to another 
without stopping the record operation. 
Some of these units even offer signal 
processing and special effects (fades, 
wipes, and dissolves). 

Now that you have a better under- 
standing of how the VCR works, let's 
discuss how to get the video image 



Here's the 

catch: To 
erase any 
existing 
information on 
a tape before 
recording new 
information, 
the tape passes 
by a special 
head called an 
"erase head." 
In most 
consumer 
VCRs, this 
head is 
stationary and 
can't erase 



Video Heads 



Top Drum 




Video Tape 



Figure 3a. Recording heads are shown relative to drum and tape. 
The bottom drum is stationary with a sloped guide to help the tape 
cross the drum at an angle. 



40 



Amazing Computing V3.1 ©1988 



from your Amiga to the VCR. The 
specific hardware is somewhat 
dependant on which Amiga you use, 
but the principles involved are 
basically the same. A1000 users need 
a composite NTSC 
video output jack as 
part of their basic 
equipment. Much has 
been written about the 
overall quality of this 
output jack; it's good 
enough for most non- 
critical purposes. It is 
electrically 100% 
compatible with the 
video-in jack on your 
VCR, although some- 
times you might need 
to change the connec- 
tors on the end of the 
cables. The stereo 
audio outputs are also 
compatible, but if 
you're not using a 
stereo VCR, you'll have 
to tie them together the 
same way you would use your Amiga 
1080 monitor. 

The A500 and A2000 also have NTSC 
video output jacks; however, on these 
models, the output is black and white 



only. On all three Amiga models, 
you'll be better off if the video signal 
is taken from the RGB port; although 
to be recorded, the signal must first be 
converted to NTSC composite video. 



U Audio Head 

: i 



Tape Movement 



Audio Track 




Control Head 



Control Track 



Figure 4. Video information is stored along diagonal 
tracks, while the audio track is linear along the top. 
The VCR uses a control track to adjust playback speed 
to mutch recording speed precisely. 



Several devices fit this purpose. I've 
been using a prototype of 
Commodore's A520 Modulator which 
converts RGB to composite video, or 
mixes the image with the audio output 
to produce an RF (radio frequency) 



in 

< 

DC 
111 



3 
LL 



LLI 

in 

< 

DC 
LU 

(3 

z 



ERASE PATTERN 



BEGINNING OF REC. 



tape direction 



-section to be recorded 

stationary erase head 




colors blot because ol 
double recording 



tape direction 



,— lotary erase head 




END OF REC. 



blank section because 
of erasure 




newly recorded section 



tape direction 



noiseless editing 




newly recorded section 



pre-recorded 
section 



NOISE ON EDITING 




rainbow noise on 
edited picture 



signal. You need this signal if you're 
using the Amiga with a television set 
or an unusual VCR that doesn't have a 
composite video input. Rating the 
signal quality from best to worst, they 
are RGB, NTSC composite video, then 
RF. 

The Commodore modulator is de- 
signed for people who want to use an 
Amiga with a monitor that doesn't 
have analog RGB inputs, and accord- 
ingly, they don't have an RGB 
passthrough. To monitor what you're 
doing on the computer, you must use 
a standard video monitor. If you're 
using the Amiga 1080, you can switch 
it to composite video, but you must 
connect the video signal to the 
composite video input on the 
monitor's back. Remember, the image 
won't be nearly as sharp as you've 
learned to expect. If you're planning 
to use any complex graphics, design 
and store them using the RGB inter- 
face, turn off the computer, connect 
the video interface, and reboot. 



Many A1000 users are already using 
the Commodore Genlock device for 
video output. With genlock, you can 
synchronize your Amiga graphics to 
an incoming video signal and have 

them both on the screen and 
in your video recording at 
the same time. Cenlock is 
one of the most exciting 
techniques in desktop video, 
and I'll go into much more 
detail in a future installment. 
Even without using the 
genlock feature, several of 
these devices offer composite 
video out and RGB 




clean editing 



Figure 5, This comparison of video erasing methods shows the noiseless result of flying erase 
heads. (Courtesy Sony Corp.) 



passthrough to your Amiga 
monitor. Mimotic's AmiGen 
is an undcr-S200 genlock 
device with RGB and NTSC 
composite vide^ output that 
works with all Amigas. 1 
received AmiGen just as I 
was closing out this article 
and look forward to trying it 
out. 

(continued) 



Amazing Computing V3.1 ©1988 



41 



If you haven't purchased 
your VCR, there are a 
few more technical points 
to consider, A few VCRs 
have a jog mode which 
lets you move back and 
forth one frame at a time. 
These VCRs are usually 
professional or top-of-the- 
line models and tend to 
be expensive side. Frame 
advance is usually 
controlled by a large 
knob on the front of the 
VCR. This is a handy 
feature for editing video. 



If you're planning to do a 
lot of video editing, you'll want 
several VCRs which can be connected 
to an edit controller, which allows you 
to work several VCRs from a single set 
of controls. The Amiga itself may 
become your edit controller in the near 
future, as the hardware and software 
become available. 

If you want to push your Amiga's 
capabilities to the maximum, you'll 
want a VCR which can record a single 
video frame. Creating a number of 
frames, one at a time, and recording 
them individually on the VCR lets you 
stretch the Amiga's capabilities even 
further. You can create complex 
computer 
graphics using 
all the tricks, 
regardless of 
how long it 
takes the 
Amiga to draw 
the final 
image. Some 
complex 
images using 
ray trace tech- 
niques, espe- 
cially with 
anti-aliasing 
subroutines, 
can take 
several hours 
to complete. 




Figure 6. Ambico's 
Super Duper reduces 
signal lass when 
making video copies. 
Notice the thick, 
shielded cables with 
gold plated contacts. 
The separate power 
supply is not shown. 




Very few VCRs have still frame capa- 
bility, but both Panasonic and Sony 
have models with both still frame 
recording and jog mode. The 
Panasonic AG1950 (VHS) and Sony SL- 
HF1000 (Super-Beta Hi-fi) each sell for 
about S1000. 

Even with far less sophisticated VCRs, 
the Amiga can do a lot to enhance 
your videos. Next time we'll take a 
closer look at some of the available 
software as we begin to make a video. 

•AC- 




Figure 7. Commodore's A520 modulator lets you get NTSC compos- 
ite video or KF signal from A500 or A2000. A small box plugs into 
the back of the computer, instead of the KGB cable. 



Aegis Tiller 

Aegis Development 

2210 Wilshire Blvd. Suite 277 

Santa Monica, CA 90403 

CGI By JDK Images 

PVS Publishing 
3800 Botticelli Suite 40 
Lake Oswego, OR 97035 



Deluxe Paint II 

Deluxe Tiller Deluxe Video 

Electronic Arts 

1820 Gateway Drive 

San Mateo, CA 94404 

Express Paint 

PAR Software Inc. 

P.O. Box 1809 

Vancouver, WA 98666 

TV Text Zuma Fonts 

Brown-Wagh Publishing 

100 Verona Court 

Los Gatos, CA 95030 

Hardware: 

Ambico Inc. 

50 Maple St. 

Norwood, NJ 07648 

Commodore-Amiga Inc. 

1200 Wilson Drive 
West Chester, PA 19380 

Panasonic Company Matsushita 

Electric Corp of America 

One Panasonic Way 

Secaucus, NJ 07094 

Sony Corp of America 

Sony Drive 
Park Ridge, NJ 07656 



42 Amazing Computing V3.1 ©1988 



Three of the BEST utilities for your AMIGA ® 




$79.95 



ZING!® is a collection of AMIGA 9 utilities which combine the 
powerful CLI commands with the friendly Workbench 
environment. Files can be displayed and manipulated (e.g. copying, 
moving, deleting) with the mouse. All of the basic system 
commands (available in CLI) have been carefully redesigned into 
mouse, menu, and function key operations. You can selectively 
copy files and directories from entire disks in a single step! In 
addition to enhancing and simplifying the normal capabilities, 

ZING! provides an integrated collection of new tools for the 
AMIGA. Included are a task monitor, print spooler, screen dump 
tools, and much more! Everyone, from the beginner to expert, will 
find using the AMIGA easier and more productive with ZING! 



ZING!Keys®is a sophisticated reprogrammable MACRO and Hot 

Key program. A program which can be used with any programs in 
the multitasking environment. You can train ZINGIKeys to 
accomplish the most annoyingly repetitive tasks in a much easier 
fashion. You can program any key stroke to type out any series of 
commands or text. You can even record mouse movements and play 
them back as a single key stroke! All MACROs and Hot Keys can be 
used from within any multi-tasking program on the AMIGA. Save 
time NOW by ordering ZING! Keys! 




$49.95 




How many times have you demonstrated your AMIGA to your friends or potential buyers? The 
Demonstrator is the answer to your dreams! This new product will record your demonstrations 
and allow you to play them back automatically! You can add text windows, subsections, and 
speech to produce sophisticated tutorials. You can control the speed or STOP the playback, or lock 
out the keyboard so no one can interfere with the demonstration. You can cause the demonstration 



to repeat itself automatically! Buy The Demonstrator today! 



Only $39.95! 



MERIDIAN 
SOFTWARE 

IINCJM 

P.O. Box 890408 
Houston, TX. 772890408 



(713)488-2144 

Credit Cards and Dealer 
Inquiries Welcome! 



AMIGA is a registered trademark of Commodore-AMIGA, Inc. 
ZING! is a registered trademark of Meridian Software, Inc. 




Amiqo is Irodtmort ol Commcuta-Amiga. Inc. 



AMIGA 




We are a Dallas Distributor exporting to customers in over 20 Notions around the globe. 
Call us today at 1-800-531-4747 (Overseas call 214-6601763) and ask for your Dealer Kit 

Here is just an overview of some of the AMIGA products we stock. 



mmPRACTICAL 
mPERIPHERALS 




Hayes compatible 2400 Baud Modem 



fr 



BV=! 



=^ 



Smart products for o smart Computer .' 

The first intelligent Diskdrive for the Amiga ! 

This drive serves as DF1; or DF2: 

A special intelligent mode allows to disable the drive ond 

regaining some memory without disconnecting the drive ! 

Compatible with A500 / A1000 and A2000. 

Users : Call for Info ond Dealer next to you ! 



J 



nJ2W (J^j. faster 

Klicker Master 

Reduces Interlace Flicker dramatically. 

For the price-conscious customer who 

doesn't want lo buy a high persistence monitor. 




/// 



luge Print 



If you like it B I G this is it; 
print Up to 8.5 x 13 feet ... I 



LASER SOUND 

PCM-Sound samples for the AMIGA ! 

IFF formal, compatible with most 

Sound editors for the Amiga ! 



IE 



InterComputing Inc. 

2100 N.Hwy36Q,Sui!e 2101 

frond Proirie. fX 75050-1015 

Order line : 800-531-4747 
Technics Support : 214-988-3500 
Internolional calls ; 214-660-1763 
Telex )f: 4932133 ICINCUl 
FAX : 214-660 3695 



We stock a full line of Amiga soft and hardware since 1985. when the machine 
was first introduced, and serve customers in more than 20 Notions oround the 
world. Most of our employees own on Amiga ond use the available products. 
We may be new to you, but we're experienced with the Amiga ! 
Check our prices, ond you'll see that we try lo be quite fair. Good products 
are worth the money, and you will not be disappointed with our service. 
We ore a member of the Dollas Setter Business Bureau. 



City Desk 

Lots of desktop publishing 
at a small price ! 



r StarbOOrd2 Memory cards :" 
Versions for the A500 
A1000 
and A2000 



Miaobolics 



Excellent sound synthesizer ! 




Butcher 



Very powerful conversion & 

processing utility for 

■-*>- digitized graphics ! 



SranUpa » 

and 

ANIMATE 3D 



and more (please call for a complete catalog) 



BV TEC 

Smart products for a smart Computer . 



Dl-X 



Great looking Midi Interface that fits all 
Amigas. Simply use different cables to 
connect the Unit to the CPU. 

IJccouse it's less expensive lo hove one MIDI with 
Iwo cables Ihon 2 different MIDI interfaces ! 



r^ 



Part 11 



LIFE 



•:*.• .-:■::: -.• :•;.<•;.•;.• v. •;.•?. * ■:':■• -j * '•' :•-. 



Accessing the Blitter 



By Gerald Hull 



"... From all we have learnt about the structure of living matter, 
we must be prepared to find it working in a manner that cannot 
be reduced to the ordinary laws of physics." 

— Erwin Schroedinger, What Is Life? 



In 1970 mathematician John Horton Conway created 'The 
Came of Life," a mathematical recreation based upon 
cellular automata theory. Life generates a special universe 
of objects exhibiting complex and seemingly unpredictable 
behaviors. In addition, Life illustrates principles being 
applied today to fields as diverse as cosmology, particle 
physics, and thermodynamics. 

Part I of this article discussed the origins of Life in cellular 
automata theory, its rules, its history on the Amiga, and 
some of its curious properties and implications. In Part II, 
we continue by taking a detailed look at the efficient use of 
the Amiga blitter. 

The Valley of the Docs 

As the world is gradually discovering, the Amiga is a re- 
markably sophisticated machine. End users have a harvest 
of software to choose from, but the programmer confronts a 
formidable learning curve. There is helpful documentation 
available for programmers, of course (most notably provided 
by Commodore). 

To learn how to use the blitter, you will find a great deal of 
useful information in the AMIGA Hardware Manual. If you 
have the Addis' n-Wesley update — AMIGA Hardware 
Reference Manual — all the better. It was extensively rewritten 
and updated, and contains some illuminating diagrams. At 
the same time, it contains some very misleading language, 
which has conspired to give the blitter a kind of "occult" 
status. 

For example, at one point the manual states, "Although the 
hardware deals in words for pointers and modules, the 
values loaded into these hardware registers from the 68000 
are treated as byte counts." (p. 170) "What else loads values 



into those registers?" I wondered. Here's what the sentence 
really means: The addresses and offsets you provide must 
be even numbers. 

Similarly, the discussion of the bitplane addresses strongly 
suggests that they must be split into two halves: 'The 
pointer for source channel A has two register addresses. 
BLTAPTL contains the low-order part (bits 15-0) and 
BLTAPTH contains the high-order part (bits 18-16) of the 
pointer address." (p. 168) 

As a result, even some of the most illuminating public 
domain source involving the blitter laboriously splits 
bitplane addresses into two halves. That's completely 
unnecessary. As the LIFER code makes clear, the bitplane 
addresses fed to the blitter registers can be treated as 32-bit 
longwords, just like any other 68000 addresses. 

Here, as anywhere else, I've found the best approach is first 
to read all the documentation and examples you can find. 
Then add a judicious amount of common sense. This 
usually restricts the possibilities sufficiently enough so ex- 
perimentation ("Dancing with Mr. G") can yield a solution. 
Anyway, that's how I got LIFER to work. 



Banging The Registers 

Presumably, the only absolute address in AmigaDOS is 
ABSEXECBASE at 0x00000004. Actually, all the blitter 
registers are also available as offsets to a specific address = 
CUSTOM = OxOOdffOOO. You do not actually use that 
number, of course (ha ha). AMIGA. LIB supplies the right 
value to the linker for an assembler XREF to "_custom" or C 
reference to "custom." 

The CUSTOM.H and CUSTOM.I files list all the blitter 
registers. When included in your program, they automati- 
cally provide the proper offset values. People who should 
know say there are registers here that nobody has ever used. 
The LIFER program uses only a few of them. The AMIGA 
Hardware Manual discusses a number of additional registers 
and capabilities. 



(continued) 



Amazing Computing V3.1 ©1988 



45 



The blittcr registers used by LIFER are listed in Table 1. 
BLTCONO and BLTCON1 contain a variety of special flags 
the program packs together into one long word, CON. 
ASHIFT and BSHIFT will be discussed at length later. 
USEA, etc., tell the blittcr whether or not to regard the value 
of BLTAFT, etc., as a bitplane pointer. They're obviously 
needed because zero is a valid address. 

The MINTERM is the logical function of source bitplanes A, 
B, and C which you want put in destination plane D. Make 
sure that if USEC is 0, for instance, your minterm docs not 
distinguish between C and not-C. In other words, the 
minterm, 0x80 in this case, would be defective because, 
when A and B are both 1, the value of D would be contin- 
gent on the value of C. 



Amiga in the same way. The multitasking operating system 
constantly uses the blitter for other purposes. If you make a 
false step, Ms. Black "Guru" Spider eats your program. 

Consequently, AmigaDOS provides procedures that can 
ensure your blits are "harmless." The basic sequence is 
represented by the following C code fragment: 



(bitplane use) 



1 1 



OwnBlitterO; 

for (i = 0; i < NUMBER_OF_BUTS; j++) { 

WaitBlitO; 

FUNCTION_THATJNVOKES_THE_BL[TTER(&BLIT_NODE); 
} 

WaitBlitO; 
DisownBlitterQ; 



(should be 1} 



BLTxPT (x = A,B,C,D) are pointers to the bitplanes involved 
in the blit. As noted, they should be even values; like the 
68000 stack pointer (SP = A7), they do not admit odd 
counts. If the addresses you poke in them result from 
standard AmigaDOS memory allocation routines (such as 
AllocMem and AllocRaster), you are guaranteed even 
values. 

BLTxMOD (x = A,B,C,D) represent "modulos," necessary for 
dealing with subportions of images. They specify how 
many bytes of memory the blitter should skip over before it 
grabs the next sequence of pixel values. Since the blitter 
deals with words only, these modulos must be even, too. 

Finally, the BLTSIZE word tells the blitter how much 
memory to move. The first 10 bits provide the number of 
rows to move, each to consist of the number of words given 
in the last six bits. If you have specified a non-zero modu- 
los, the blitter then skips that specific number of bytes 
before grabbing the next row. BLTSIZE is quite special. 
The movement of a value into this register is what actually 
triggers the blit. 



The functions — OwnBlitterO, WaitBlitO, and DisownBlit- 
ter() — are all supplied by AMIGA.LIB. The first gives your 
code exclusive rights to the blitter; the second makes sure 
any preceding blit has finished; and the last relinquishes 
those rights back to the operating system. 

The FUNCTION JTHATJNVOKES_THE_BLITT£R consists 
of a sequence of assignments to the blitter registers which 
define a particular blit, culminating in an assignment to 
BLTSIZE: 



struct Custom 'chip = (struct Custom ')uxdffQ00; 

void FUNCTION JHATJNVOKES_THE_BLITTER(node) 
Blif_node_structure "node; 

{ chip~>bltcon0 = node->bitconO; 

chip->bltconl = node->bttconl; 

<all other blitter register asslgnments> 

chip->bltsize = node->bltsize; f this makes It happen! 7 } 



I've oversimplified somewhat. You must pay more attention 
to data types and conversion of operandi than this example 
shows. Nonetheless, once you've hacked out those details, a 
C routine equivalent to the one above is quite sufficient to 
make the blitter dance to your rhythm (and not eat your 
code). 



Dancing in the Web 

The male black widow spider, looking for romance, must be 
very careful when he enters the female's web. To avoid 
being mistaken for yummy prey, he approaches by stepping 
in a peculiar rhythm. You must approach the blitter on the 



LIFER follows a somewhat more complicated and suppos- 
edly more "proper" approach to invoking the blitter. 
AmigaDOS has built-in machinery for managing and 
scheduling blitter use. This makes sense for such an 
essential and limited resource. (This approach is described 



46 



Amazing Computing V3.1 ©1988 



starting on page 2-62 of the old ROM Kernel Manual, 
Volume 1. I'm not sure how the Addison-Wesley version 
handles it.) 

Instead of directly accessing the blitter, the program sends 
the AmigaDOS routine QBSBlitC) a pointer to a special data 
structure. In turn, this structure includes a pointer to the 
actual routine (_doblit) that bangs the registers. QBSBlitO 
queues up this request to use the blitter, and calls _doblit 
when its turn comes up. 



A Structured Approach 

The data structures used in passing information are essential 
to understanding this reliance on QBSBlitO. The Ami- 
gasDOS routine expects a pointer to data in the following 
format: 



struct bltnode 
{ 

struct bltnode "n; 
int ('fijnction)O; 
char stat; 
short blitsize; 
short bearnsync; 
Int (*cleanup)0: 
1; 



the CUSTOM registers (SOOdffOOO), and Al points to the 
BLTNODE (actually, LIFEBLTNODE) structure that it was 
given. 

So, all doblit needs to do is keep banging registers and 
decrementing the initial REPEAT value until the REPEAT 
value reaches zero. Since all the LIFEBLTNODEs required 
for a sequence of blits have been put into an array, _doblit 
simply increments an array INDEX pointer to get the data 
for subsequent blits. An additional variable, DZIP, is 
required because the assignment to BLTSIZE scrambles the 
DO register. 

The drawback to using the value returned to QBSBlitO to 
perform a whole sequence of blits — LIFER needs 14 to com- 
plete a Life generation — is the impact this has on multi- 
tasking. For example, if you attempt to use CLI at the same 
time as LIFER is churning away, you find a significant delay 
between responses to your keystrokes. 



I've Got Algorithm 

The wonderful people who read and remember Part I of this 
article may raise their eyebrows at the assertion that LIFER 
needs 14 blits per generation. Am I not the fellow who 
bragged about doing a Game of Life generation in merely 
nine blits? 



The include files BLIT.H and BLIT.I contain this definition of 
BLTNODE. The only structure elements needed for LIFER 
are FUNCTION and BLITSIZE; the rest are initialized to 
zero. FUNCTION gets a pointer to the assembler routine 
doblit, and BLITSIZE gets the size of the blit encrypted the 
same way as for BLTSIZE. 

How does doblit get the data it needs for banging the 
registers? By making BLTNODE the first element in a larger 
structure, called LIFEBLTNODE, it is possible to "piggy- 
back" that information so _doblit can get to it. LIFEA.ASM 
has the assembler version of LIFEBLTNODE; LIFER.C has a 
C version. The assembler version contains an extra element 
(DUMMY) to compensate for the fact that C structures are 
built to longword boundaries. 

QBSBlitO was designed to allow the programmer to concate- 
nate a sequence of related blits. When control returns to 
QBSBlitO from your FUNCTION, it checks the return value, 
which, in AmigaDOS, means the value in register DO. If 
that value is non-zero, your routine is immediately called 
again. 

My assembler routine doblit takes advantage of this feature 
and uses the amount in REPEAT in LIFEBLTNODE to deter- 
mine how many blits are required to complete the task at 
hand. Before calling the FUNCTION, QBSBlitO very 
conveniently makes sure register AO points to the start of 



The explanation is five of those blits are needed for setting 
up the wraparound feature of LIFER. If you dispense with 
this "toroidal" effect, as docs Tomas Rokicki in his version 
of the Game of Life (Fred Fish #31), those five extra blits 
can be eliminated. I find the wraparound version more 
aesthetically satisfying. Regardless, the techniques required 
for providing that feature reveal some interesting aspects of 
blitter use. 

Before going any further, however, let me point out I have 
taken these techniques (and much else) from a publicly 
released source fragment of Alonzo Gariepy's program 
FASTLIFE. Indeed, most of the code in LIFER.C comes 
either from Gariepy or Scott Everndon. As Rosalind 
Franklin, whose work was crucial to the discovery of DNA, 
once said, "We all stand on each other's shoulders." 

The approach takes advantage of the fact that the state of a 
cell ("living" or "dead") is mapped onto the screen image 
which represents it (some Is or all Os). Consequently, any 
logical operations performed on the copy of the screen are 
equivalent to operations on a two dimensional boolean array 
representing a borderless Life universe. 

The basic idea of the wraparound screen is if you go off one 
edge, you show up in the same relative place on the 
opposite side. A lot of computer games, most notably the 

(continued) 



Amazing Computing V3.1 ©1988 



47 



Table One 

Blifter (Custom) Registers Used By LIFER 



REGISTER 

bltconO 



ADDRESS 

OxdffMD 



SIZE 



<PART> / FUNCTION 



bltconl 

bltafwm 

bltalwm 

bltcpt 

bltbpt 

bltapt 

bltdpt 

bltslze 

bltcmod 
bllbmod 
bltcmod 
bltcmod 



0xdff042 

0xdff044 
0xdff046 
0xdffO48 
0xdff04c 
0xdff050 
0xdff054 
0xdff058 

0xdff060 
0xdff062 
OxdffOM 
0xdff066 



word: 




bits 15-12 


ashift 


bit 11 


usea 


bit 10 


useb 


bit 9 


usee 


bits 


used 


bits 7-0 


minterm 


word: 




bits 15-12 


bshift 


bits 1 1-0 


<other> 



amt to shift a-plane (a) 
should a-plane be used? (b) 
should b-plane be used'' 
should c-plane be used? 
should d-piane be used? 
logical function of a,b,c 



amt to shift b-plane 



word 

word 

tongword 

longword 

longword 

longword 

word: 
bits 15-6 
bits 5-0 

word 

word 

word 

word 



a-plane first word mask 

a-plane last word mask 

c-plane ptr <even byte address> (c) 

b-plane ptr <even byte address> 

a-plane ptr <even byte address> 

d-plane ptr <even byte address> 



height plane height in pixels 

width plane width in words (d) 



c-plane modulo 
b-plone modulo 
a-plane modulo 
d-plane modulo 



<even byte omount> 
<even byte amount> 
<even byte amount> 
<even byte amount> 



Remarks 

(a) Bits in a 68000 word are 
numbered from least 
significant bit (LSB = 0) to 
most significant bit (MSB = 
15); when read from left to 
right, however, the MSB is 
encountered first. 

(b) When set (=1), the 
blitter uses the bitplane. 
When clear (= 0), it won't 
use it. (See LIFER.C.) 

(c) These addresses, as 
with any addresses 
generated by the blitter in 
the course of a blit, must lie 
in the range 0..524288 
(0x00000..0x80000), or 
"chip memory." 

(d) Since 2*»10 = 1024, as 
does 2**6 * 16 (bits in a 
word), the blitter has the 
inherent capacity to handle 
IK x 1 K resolution images. 



Ba 6«flMB«M*ia««3MaMfrM WW^VV.TV.w^V--^-^ 



Asteroid™ variants, use such a screen. It's also called a 
toroidal screen because it is topologically identical to a 
doughnut or teacup. If this does not make sense to you, 
don't worry. 

In order to get wraparound results with the blitter, we first 
prepare a special copy of the bitplane currently displayed on 
the screen. We blit the 320 x 200 pixel image into the center 
of a 352 x 210 bit area of memory. As a result, the copy is 
bordered on right and left by an extra word, and on top and 
bottom by five extra lines. (Five are needed for the largest 
"critter" comprising a Life cell.) 

Next, we blit the top five lines of the image into the space 
after the bottom, and the bottom five into the space above 
the top of the image. We then do the same with the word- 
wide strips on the left and the right of the image. The 
result is an "expanded" copy of the original screen: 



0000000000 
0123456780 
0812345670 
C7fil234560 
0678123450 
0000000000 



5678123456 
8123456781 
1812345678 
6781234567 
567B123456 
81234S6781 



This uses up the first five blits. If you study the code in the 
InitBHtO routine in LIFER.C, you see how the bitplane 
pointers, modulos, height, and width variables all work 
together to generate the desired blits. Since a plain "va- 
nilla" copy from source A to destination D is wanted, the 
MINTERM is A TO_D, and USEB and USEC are set to zero 
for these blits. 

When we calculate the next Life generation, we are assured 
every cell in the original 320 x 200 screen— including those 
on the edges — will have valid neighbors on all four sides in 
the expanded version. We are ready for the nine blits that 
actually calculate the next generation. 

•AC- 



48 



Amazing Computing V3.1 ©1988 





% 



WARNING: Independent test results have 
determined that this game is habit forming. 



Fourth and goal on the two. Ten seconds left and you're down by five. The roar of the crowd is 
deafening as you scan the defense. Something's not right. You call an audible... that special play you've 
been saving for a moment like this. You fake a hand off to the fullback up the middle and drop back to pass, 
but nobody's open. You roll left, pursued by a 270 pound defensive lineman. Finally, the fullback breaks 
clear in the end zone. You squeeze a bullet between two defenders as your fullback cuts bac k to make the 
catch. The scoreboard lights up as the crowd goes wild... TOUCHDOWN!! 

This is GRIDIRON! 1 ", the most realistic football simulation ever developed for a micro- 
computer. GRIDIRON! is TACKLE football played in real-time. Call a play from the Playbook, 
or design your own using our Play Creation Utility. You control the action with five levels of play, 
real time graphics, digitized stereo sound and an unprecedented level of game interaction. 

Experience the game that's winning rave reviews from players and critics alike. 
GRIDIRON!, the ultimate football simulator designed to unleash the power of your Amiga 
Nothing else comes close. 

Requires 512K. For one or two players. Soon to be available for the Atari S*E f ' 

Amiga is a trademark of Commodore-Amiga, Inc. c 1386 Bethesda Softworks 

lb order, call 1-800-245-4525 ELECTRONIC ARTS' 



PCTHC5PA 

wmom 




SJ9ATH09& music vweo 

SYMPHONY MUSIC VIDEO continuously displays pictures and plays music. 
At the end of a selection, another picture and music piece is loaded. The music and 
pictures are all in IFF format so you can modify ours with your favorite Paint or 
Music program or use your own music and pictures and create your own MUSIC 
VIDEO. You can even have your MIDI synthesizer play the music. 

The MUSIC VIDEO that is included is perfect for the Christmas Season. Traditional 
Christmas scenes and music are continuously played. Fun to listen to and watch. 
Adds to the best of seasons. $24.95 

Symphony Songs 

Ready to Play Music For 

(Ddwxc Music, Music Studio j Soni?c 

A library of nearly 1,000 music masterpieces ready to play with your favorite music program. All selections are in both IFF and 

MUSIC STUDIO format. Space does not allow listing all songs in each volume, however, a few titles, the number of songs, and the 

total playing time is given. 

Complete list of songs $3.95. 

Each volume is $24.95 and includes the complete list. 



BEATLES Part I 

Vol 15 (21 Pieces 40 Min) 

Let It Be. Yesterday, Eleanor Rigby, When I'm 

64, . . . 

BEATLES Part 2 
Vol 40 (15 Pieces 40 Mill) 

Magical Mystery Tour. Lucy In The Sky With Dia- 
monds, Penny Lane, , . . 

CLASSICAL Part I 

Vol 27 (18 Pieces 40 Min) 

Prelude #1, Moonlight Sonata 1st and 2nd Move- 
ment. . . . 

CLASSICAL Part 2 

Vol 34(13 Pieces 40 Min) 

Sonata In C Major, Jesus Joy Of Man'sDcsire, . . . 

CLASSICAL Part 3 

Vol 31 (14 Pieces 35 Min) 

1st Piano Concerto, Polonaise Sonata In C Major, 

Etude #3, . . . 

CLASSICAL Part 4 (Bach) 

Vol 35 (22 pieces 30 Min) 

Two Part Invention #1, Three Part Invention #6, 

Prelude and Fugue 1, . . . 

CLASSICAL Part 5 (Bach/Clementi) 

Vol 46 (24 Pieces 50 Mini 

Choral #1, Sonala #1. Theme and II Variations 

From The 2nd Sonata. . . . 

BEETHOVEN, BROADWAY, & BLUES 

Vol 38 (15 Pieces 40 Min) 

2nd Movement Of the Pulhetique Sonata, Minuet In 

G. Fuer Elise, . . . 

COUNTRY CLASSICS Part 1 

Vol 41 (15 Pieces 45 Min) 

ThankGod I'maCountry Boy. ActNaturally. . , . 



ROCK Pan ! 

Vol 32 (19 Pieces 50 Min) 

AXEL F, Eye Of The Tiger, Both Sides Now, . . . 

ROCK Part 2 

Vol 16 (20 Pieces 40 Min) 

Georgy Girl, Guanlanamcra, Theme From "Love 

Story." Cherish, . . . 

SO's GREATEST 

Vol 24(15 Pieces 50 Min) 

Hill Street Blues Theme. Chariots Of Fire Theme. 

Dynasty Theme, . . . 

70's GREATEST 

Vol 12(19 Pieces 45 Min) 

Tie A Yellow Ribbon On The Old Oak Tree. We've 

Only Just Begun, . . . 

SO's GREATEST 

Vol 13 (19 Pieces 45 Min) 

Windy, By The Time I Get To Phoenix, Come Satur- 
day Morning. . . , 

GOLD & PLATINUM HITS 

Vol 45 (19 Pieces 60 Mm) 

Thriller. 99 Luft Balloons. California Girls. . , . 



KENNY RODGERS HITS 

Vol 39(12 Pieces 45 Min) 

Lady. Ruby. She Believes In Me, The Gambler. , . . 

BILLY JOEL GREATEST HITS 

Vol 43 (17 Pieces 65 Min) 

Piano Man, Say Goodbye To Hollywood, Only The 

Good Die Young, . . . 

COUNTRY CL ASSICS Part 2 

Vol 42 (13 Pieces 50 Min) 

Ode To Billy Joe. Me and Bobby McGec. Country 

Roads, . . . 



TV THEMES 

Vol 37 (21 Pieces 35 Min) 

Hill Street Blues. St. Elsewhere Theme. Masterpiece 

Theater Theme. . . . 

MOVIE THEMES 

Vol 19 (16 Pieces 40 Min) 

MASH Theme, The Rose, Can You Read My Mind 

(Superman). . . . 

BROADWAY'S THEMES 

Vol 47 (25 Pieces 65 Min) 

The Last Supper, Dr. Doolittle. The Old Dope Ped- 
dler, ... 

CHURCH MUSIC 

Vol 23 (26 Piece 50 Min) 

Amazing Grace. What A Friend We Have In 

Jesus. . . . 

BARBERSHOP 

Vol 22 (22 Pieces 45 Min) 

Hello Dolly, Put On a Happy Face, Hey Look Me 

Over, . . . 

RICHARD RODGERS SONGBOOK 

Vol 18 (19 Pieces 40 Min) 

Climb Every Mountain. DO-RE-MI. The Sound Of 

Music, . . . 

NOSTALGIA 

Vol 17 (22 Pieces 45 Min) 

Let Me Call You Sweetheart. Ain't Misbehavin'. On 

The Goodship Lollipop. . . . 

CHRISTMAS 

Vol 36 (24 pieces 50 Min) 

O Little Town Of Bethlehem. Let ll Snow, March 

Of The Toys. . . . 

POLKA PARTY 

Vol 33 (17 Pieces 40 Min) 

Happy Polka, Pizzacato Polka. Betty Polka, 



We accept CASH. CHECK, COD. VISA and MASTER CARD orders. 

Shipping and handling US and Canada S3. 00 

Shipping and handling outside the US and Canada $5.00 

COD charge S2.00 

Illinois residenls add 6 1 >"■• sales tax. 



tf louncc i-iccDt) a ri ; onin 



Deluxe Music Construction Set is a trademark of Electronic Arts, Sonix is a trademark of Aegis, 



38VV255 DEERPATH ROAD 

BATAV1A, ILLINOIS 60510 

(312) 879-6880 

Music Studio is a trademark of Activistun. 



Am IgClN OteS Di 9 itc " Music feneration 



The Amiga's software can be viewed 
as a series of layers: WorkBench and 
the CLI "sit on top of Intuition and 
AmigaDOS, which in turn rely on the 
Exec routines, and so on. Digital 
music generation can be broken down 
in the same way: one layer processes 
a sequence of instructions — notes, 
instrument changes, and so on; 
another layer controls the creation of 
the various timbres used; another 
handles the actual tone generation. 
This month we'll take a look at the 
lowest level, the actual tone generation 
process. 

In a digital audio system, sound is 
created by generating a series of 
values at specified intervals. These 
values are converted to voltages by a 
Digital to Analog Converter (DAC), 
then passed through a lowpass filter to 
remove unwanted remnants of the 
digital signal generation process. 

The sequence of values determines the 
timbre, or tonal quality, of the sound. 
For example, if we generate a set of 
high values alternating with a set of 
low values, the result is a square 
wave. Devoid of even harmonics, a 
square wave has a hollow sound 
reminiscent of a clarinet. Repeating a 
set of continually rising values, on the 
other hand, results in a rising 
sawtooth; a true sawtooth contains all 
harmonics and has a sharp timbre 
distantly related to bowed strings. 

No matter what waveform we want to 
produce, there are two ways to 
generate the signals: real time and pre- 
calculated. 



by Rick Rae 

CIS (76703.4253) 



REAL TIME SIGNAL GENERATION 

The most obvious way to generate 
these signals is to calculate them in 
real time. The CPU, or dedicated 
hardware, performs the necessary 
calculations during the interval 
between samples, then sends the value 
to the DAC at the appropriate time. 

This method has one serious problem: 
overhead. For anything beyond the 
simplest waveforms, a CPU like the 
68000 simply can't calculate the 
samples quickly enough. What we 
need is an approach which insulates 
the CPU from the time limitations of 
real time generation. 



PRE-CALCULATED SIGNAL 
GENERATION 

One solution is to do the calculations 
before we need them, Hal Chamberlin 
was one of the first microcomputer 
enthusiasts to experiment with this 
approach. He knew of several 
methods which could produce re- 
markably realistic sound, but most 
required more CPU horsepower than 
was available in microcomputers at 
that time. In an experiment he used 
one of these methods to generate 
organ tones. Hal gave the CPU as 
much time as it needed to calculate 
each value, allowing the program to 
write the results slowly to mass 
storage. Once the calculations were 
completed, a much simpler program 
could spool each value from disk to 
the DAC, completing the process. 



TABLE LOOKUP 

A more manageable approach is the 
table lookup method. Instead of 
computing an entire composition, the 
program calculates one or more cycles 
of a waveform and places it in a table 
in memory. The playback program 
moves a pointer through this table, 
retrieving values and sending them to 
the DAC. When the pointer reaches 
the end of the table, it loops back to 
the beginning. By changing the 
number of values in the table, we can 
change the pitch being generated. If 
we hold the table size constant, there 
are two other ways to vary pitch. One 
method is to change the rate at which 
the pointer is advanced; the other is to 
advance the pointer by values other 
than one. 

Amiga sound software normally uses a 
hybrid approach, combining two of 
these techniques. To select pitches 
within one octave, we vary the rate at 
which the pointer is advanced. To 
select the octave, we change the table 
size. (Each octave has its own table, 
and each table has half as many 
entries as the one for the octave below 
it.) 

The Amiga, a very flexible system, can 
utilize all of the sound generation 
methods mentioned so far. The sound 
hardware can be set up to loop con- 
tinually through a waveform table in 
memory, automatically advancing the 
pointer and generating values so the 
CPU can proceed with other business. 



(continued) 



Amazing Computing V3.1 ©1988 



51 



Or the table can be made very large 
and the looping disabled, allowing a 
complete sound sample to be scanned. 
The special hardware can even be 
bypassed, allowing the CPU to 
generate values in real time. Most 
programs which turn the Amiga into a 
musical instrument use a variant of the 
table lookup scheme. 



SETTING THE TABLE 

Now that we've examined the mechan- 
ics of getting the sound out of the 
audio jacks, let's back up a level: 
How do we set up the table and 
calculate the real time values? Here 
we have a huge number of approaches 
available. This is an area where 
experimentation is still valuable. The 
rest of this column will describe some 
of the more popular methods, as well 
as a few which are new and intrigu- 
ing. 



SAMPLING 

The sampling method is probably most 
familiar to Amiga owners. Here we 
digitize a live or recorded sound, 
converting it into a string of digital 
values which become the waveform 
table. Looping a single cycle of a 
digitized sound results in a static, 
synthetic tone which may retain some 
aspects of the original. A much longer 
sample, perhaps several seconds in 
length, is more commonly used. A 
loop is often created from the end of 
the table back to somewhere in the 
middle, which allows the tone to be 
held as long as is necessary. Percus- 
sion sounds, such as drums or staccato 
tones, are not looped. The main 
disadvantage of sampling is that it is 
difficult to radically modify a sampled 
sound. If you start with a vibrato 
trumpet note, you're pretty much 
stuck with a vibrato trumpet note; you 
can't tweek a few parameters and turn 
it into a choir. 



FREEHAND DRAWING 

One or two of the audio packages 
available for the Amiga allow you to 
draw a waveform directly for play- 
back. Although this is useful in 
repairing damaged samples (removing 
record pops and so forth), it is 
generally a hit-and-miss approach to 
creating original sounds. There is no 
obvious, clear-cut relationship between 
what a waveform LOOKS like and 
what it SOUNDS like. Two wave- 
forms which look very different can 
sound nearly identical, while two 
waveforms which look very similar 
can sound very different. The only 
rules we can apply are very general: 
sharp edges add brightness (high 
order harmonics), narrow pulses tend 
to be thin sounding, and so on. But I 
won't deny that it's fun to experiment. 



ARITHMETIC COMPUTATION 

Although all of the techniques from 
this point on compute waveforms 
arguably, I'm referring here to a class 
of algorithms which are very straight- 
forward and can usually be expressed 
with only a few lines of code. 

Filling a table with any of the tradi- 
tional analog synthesizer waveforms 
can be done in this manner. A 
sawtooth, for example, can be gener- 
ated with the following C code 
fragment: 

while (TRUE) 

(if 

(value > MAX) value = -1: 
value += 1 ; 
} 

This snippet simply adds one to 
"value" continually until it reaches a 
preset limit, and then it is reset to 
zero. If we set MAX to 2*Pi and insert 
a SINO function, we can generate a 
sine wave. Triangle waves, square 
waves, and pulse waveforms are 
equally easy to create. 



If we placed an output statement in 
any of these routines, we would 
generate a continuous waveform, albeit 
far below any usable frequency. By 
running through the loop only once 
and sending the results to memory, we 
can quickly fill a waveform table with 
any simply computed waveform. 

The problem with simple waveforms 
of this sort is that they sound, well, 
simple. Boring might be a better 
word; without some sort of change to 
entice it, the ear/brain quickly loses 
interest. But changing the algorithms 
to add variety also makes them more 
complex, eliminating the method's 
original advantage of simplicity. 



ADDITIVE SYNTHESIS 

A sine wave is the simplest waveform 
possible; it is a single, pure tone with 
no attributes other than amplitude and 
frequency (and phase, if we measure it 
with reference to something else). By 
using sine waves as building blocks, 
we can build complex tones. 

Both the Synergy synthesizer and the 
Yamaha DX series support additive 
synthesis. (The Yamaha DX uses other 
methods as well.) Music Studio was 
the first Amiga music package to use 
this approach. 

Theoretically, any sound can be 
created or mimicked using additive 
synthesis, given enough sine waves. 
The problem with this technique is 
that it takes a lot of work to create a 
sound. As a sound creator, you are 
given a large number of variables to 
work with, and it takes quite a bit of 
time to get everything "just so." 
Anyone who has tried to reproduce an 
acoustic instrument using Music 
Studio knows exactly what I mean. 



RESYNTHESIS 

Resynthesis, one of my pet ap- 
proaches, combines Fourier analysis 
and additive synthesis. 



52 Amazing Computing V3.1 ©7988 



Fourier analysis is the "flip side" of 
additive synthesis; instead of combin- 
ing sine waves to create a final 
product, Fourier analysis breaks a 
complex waveform down into its 
component parts. 

With resynthesis, we analyze a record- 
ing of an existing sound, giving us a 
set of sine wave frequencies and am- 
plitudes. To use this approach on the 
Amiga, start with a harmonic-rich 
waveform like a sawtooth, then use 
the filter to remove some of the upper 
order harmonics. This technique can 
be used to create credible string and 
brass sounds with a minimum of 
effort. Unfortunately, the types of 
sounds this method can produce are 
limited; realistic acoustic pianos and 
plucked strings, for example, are 
particularly difficult to recreate. (Sonix 
bypasses this problem by giving you 
several synthesis methods, including 
freehand drawing, which you can 
combine to create the final product.) 



FM SYNTHESIS 

John Chowning (the originator of the 
FM synthesis concept) and Yamaha 
(responsible for the commercialization 
thereof) have certainly shown FM 
synthesis to be a valid approach. 
Most people involved in the making of 
music have heard of the Yamaha DX7, 
the most successful FM synthesizer of 
all time. 

With FM synthesizing, it is possible to 
create beautifully complex and realistic 
sounds. FM synthesis is remarkably 
adept at simulating plucked strings, 
struck tines, gongs, and bells. Without 
some tricks to add "texture," an FM 
string section can tend to sound a bit 
thin, but in general FM is a powerful 
technique, providing an excellent 
return for the time spent fiddling with 
the parameters. 



SPIRAL SYNTHESIS 

Spiral synthesis is one of our new 
"toys," invented only recently. Con- 



ceptually, spiral synthesis looks at the 
waveform "end on." It considers it a 
two-dimensional projection of a three- 
dimensional entity, in which a sine 
wave represents a spiral. This ap- 
proach opens up a new viewpoint, 
which is always valuable in synthesis 
experiments. 

That'll do it for now. Until next 
month... 



•AC- 






The Next Step in Amiga™ Telecommunications 




Only 49.95! 

ProtoCall, The Rest Are History. 



Supports All Standard Protocols and Terminal Types 

Very Fast, a Must for a MultiTasking Computer 

Watch Me — ProtoCall Will Watch Your Every 

Command and Write a Script For You, 

NO PROGRAMMING! 

Quick Access Phone Book and Menus 

Multichannel Transfers Supported 

Interactive Help 

Specifically Designed for the Amiga 

Computer 



Amiga Is a Trademark ol Commodore-Amiga, Inc. 




Amazing Computing V3.1 ©1988 



53 



Animation for C Rookies 



Part IV— Out Of Sequence 



by Michael Swinger 



If you have done any programming on 
the Amiga, you have probably realized 
that linked lists are at the heart of 
many system routines. Whether you 
are creating menus or windows, or 
using the built-in animation routines, 
linked lists are there. You have also 
certainly found that the lists are 
fragile — any error at all brings the 
system crashing down. If your 
animation programs compile success- 
fully, and the screens and windows 
and colors all appear when the 
program is run, but no Bobs are 
visible, you have probably done 
something silly {such as pointing an 
AnimComp at the wrong Bob). Such a 
trivial mistake prevents the animation 
and Gel lists from initializing. 

Linked lists are also ill-humored. 
They do not like to be tampered with 
once created. You can adjust timers, 
velocities, and screen coordinates in 
the AnimObs and AnimComps with 
impunity, but if you try to change the 
sequence pointers, you better be 
careful. You might like to prepare 
several different animation sequences 
in your programs using the same 
Bobs, for example. 

The secret is to create the list of An- 
imComps as a strict sequence, from 
the first to the last, regardless of the 
order you want to display them in the 
program. After the animation list has 
been initialized, you can then switch 
the sequence pointers by using the 
extensions provided in the AnimOb 
and AnimComp structures. (You can 
add all kinds of things in these 
extension — calling up sounds, for 
example.) The following code frag- 
ment illustrates one way to program 
this. 



Assume we have created 3 Bobs as 
AnimComps (Compl, Comp2, and 
Comp3), and they are part of a master 
AnimOb, named Objl. We want to 
alternate continuously between the 
first two views, until the AnimOb 
reaches a Y screen coordinate of 100. 
At that point, we want to switch to 
the third view. The AnimCRoutine in 
Comp2 is checked every time this 
view is the current view. If a pointer 
to our own routine is present, our 
routine is called. The routine below 
checks the Y coordinate of the control- 
ling AnimOb. 

If the coordinate is less than 100, the 
routine switches the sequence pointers 
in Comp2 to redisplay the first view as 
the next view in the sequence. When 
the Y coordinate is greater than 100, 
the routine allows the sequence to 
progress from second to third view (as 
linked originally). The Timer and 
TimeSet parameters are both set to 0, 
so the third view never changes. Since 
the view never changes, the sequence 
pointers in this unchanging view can 
point to any other AnimComp in the 
same list, but cannot point at them- 
selves. (Don't write something like 
Comp2.NextScq=&Comp2, or 
Comp2.NextScq=NULL.) 

The last AnimComp in a sequence that 
does not repeat must have its timers 
set to 0. You can, of course, add a 
second sequence of views and more 
AnimComps to the list, if the list of 
views was first created in a strict 
numeric sequence. 

Compl . Next Seq=s Comp2 ; 
Compl . PrevSeq=£Comp2; 
Compl . AnlmCRout lne=NULL; 

Comp2 . Next Se q -£Corap3 ; 
Comp2.PrevSeq=4Compl; 
Comp2.AnimCRoutine=4MyRoutine; 



Comp3.Timer-0; 
Comp3. TimeSet =0, - 
Comp3.NextSeq=SCofflpl; 
Comp3.PrevSeq-£Comp2; 

MyRoutine() 
{ 

If {Objl.AnY < (100*641) 
Comp2. Next Seq-fi Compl ; 
else Comp2,NextSeq=&Comp3; 
return () ; 
) 



Double-buffering is memory intensive, 
and the structures necessary to turn 
the Bobs into Animation Objects 
consume even more precious Chip 
memory. Rumors persist about 
upgraded graphics chips for the A500 
and A2000. (I hope can it somehow be 
fit into the 1000.) Until they arrive 
(which may or may not be within the 
lifetime of this planet), there are ways 
to conserve memory. 

The last AnimComp in a non-repeating 
sequence can be removed from the Gel 
list by changing the NextOb and 
PrevOb flags in the AnimOb struc- 
tures. It can also be moved off screen, 
or left in place in the display. If this 
last Bob/ AnimComp is never going to 
move again, it need not be double 
buffered. 

I know the RKM says, "If one Bob is 
double-buffered, then all Bobs must be 
double-buffered." That's not so. Just 
don't allocate a Save Buffer or a 
Double-Buffer for the Bob that is not 
double-buffered. Eliminate the 
SAVEBACK flag in the Bob structure 
and place a NULL in the DBuffer and 
SaveBuffer parameters. If you are not 
using the system collision detection 
routines, you can also eliminate the 
Border Line buffer and place a NULL 
in the VSprite structure. 

■AC- 



54 



Amazing Computing V3.1 ©1988 



S£j : 




&a 






mk 



a... 



««e 



thb 






er 






^W***** 



^:>«^ 



*S>r ?«o^>4.^e 



c 3fe --"o/ fev 7-Sautt^ 



******* 



« 



P^Ox 









*^ = 



l ^lx 






J JV 



^r a j 



Pktu, 






afl 



0*. 



W°^ 



s *>n. 



'*& 



s °rtn 









? ^ ; 



^^> 

^-** 



««f 



^ 



/onuMRE yion/hc. 

J 26 FOREST ROAD, FRAMINGHAM. MA 01701 




We Focus 



In the growing video market one company 
leads the way in top-quality, low-cost, 
computer effects software. Aegis. You'll find our 
products working at every level in the video 
field. Professionals in television, video produc- 
tion, cable TV, industrial 
and government video, 
college, schools — you 
name it, we're there. 

We're there 
because our prod- 
^ ucts provide flex- 
ible technology 
that sparks the 
imagination. Tech- 
nology that gets 
the job done. 

You'll find us at 
Prism Graphics 

For Jeff Bruettethe 
Amiga spells suc- 
cess. He uses Aegis 
programs like 
VideoScape 3D, 
VideoTitler, and 
Animator to help 
him produce 
graphics and 
animations for 
television pro- 
grams like Max 
Headroom and 
Secrets and 
AtMetaVision Mysteries. 

When Theo Mayer and Peter I nova began work 
on a video project for Universal Studios tours 
they decided to try out an Amiga for a particular 
effect they wanted. It worked perfectly, and they 
saved thousands of dollars in post production 
fees. Next, they put Aegis products to work pro- 
ducing animations for a McGraw-Hill home 





video. They were 
convinced, and 
the Amiga with 
Aegis software 
became an integral 
part of the studio. 

At Master 
Communications 

The publishers of 
the popular Board Sailing Year annual video put 
Aegis software to work for their corporate 
clients. An Amiga 2000 is part of their video 
production house and they use products like 
VideoScape 3D, Animator and AudioMaster for 
special effects and logos. 

And at Pixelight 

Independent Amiga artist, Nick Poliko, uses Aegis 
products to create graphics and animations for 
such clients as CommCorp, Purolator, and Union 
Gas. They use his artwork for everything from 
public relations videos to attention getters at 
trade shows. 

With Products 
for Graphics, 
Animation 

We handle metamor- 

phic, eel, and color 

cycling animation 

with Aegis Animator. 

Animations are 

created and edited in 

an interactive environment allowing you to 

watch your animation as you build it. Winner of 

the 1986 CES Award of Excellence, Animator has 

already found thousands of uses around the 

world. Included in the % 139. 95 price is the 

Images paint system. 

Award winning in its own right Images is a lot of 
paint program for a small price. With color cycling, 
mirrors, air brush, pantograph, gradient fill, over 40 




Aegis Artimoiot. lmao.es, VideoScape 3D, AudioMaster. SorJjt. VideoTHJer. and Impact ire trademarks of Aegb Development. Inc. 
ANIM Is i trademark of SporiofAegls Development. Inc. Amiga is a registered trademark of Commodore-Amiga. Inc. 
The AF6 Camcorder is 3 pinduil <if Son/ Corporation and 11.1 use in this id is not an endofscmcnl by Sony of Aegis products 



on Video 




other features, and a price of 
S 39.95, Images has the best price/ 
performance ratio in paint 
packages. 

Business graphics are a snap 

with Impact! Pie, bar, line, area, 

symbol, and scatter- 

gram charts are all 

easily created with 

every element of the 

chart from labels 

to axes available 

for editing. 

You also get a 

slide show 

generator with 

eight different 

dissolves and 

wipes. All for 

S89.95. 

For the advanced 
animator VideoScape 
3D provides an environ- 
ment rich in 3-dimensional capabilities. Object 
motion and metamorphosis, camera motion, light 
sources, IFF foregrounds and 
backgrounds, and the ability to 
create animations in the ANIM 
format are just a few of the features 
that make the S 199. 95 price tag a 
'great buy. 

For titling you can't beat Aegis 
VideoTitler. It supports all of the Amiga 
fonts as well as its own polytext fonts, 
works in four different resolutions and uses 
overscan. It has 20 different styles, works 
with IFF, uses haifbrite if available, and 
supports the ANIM format. Included in the 
amazing $149.95 price is a slideshow genera- 
tor that can mix ANIM animations with slides. 



And Sound 

Our video effects don't stop with 
great visuals. Programs like Sonix 
and AudioMaster take on the world 
of music and sound as well. Winner 
of a CES 1987 Award of Merit, Sonix 
lets you create your own instru- 
ments, compose music, and work 
with MIDI instruments. All for S7995. 
We back up Sonix with AudioMaster, 
a digital sampling and editing pro- 
gram. It features interactive editing 
of the waveform and effects like 
echo, reverse, and low pass filtering. 
It also makes use of expansion 
memory (up to 9.5 MB) for extra 
long samples. Just S59.95- 

For more information and the dealer nearest you: 
(213) 392-9972 or to order direct: 
1-800-345-9871. ~ 




2210 Wilshire Blvd., Suite 277 
Santa Monica, CA 90403 



V 







■w. 



i ■ 






' 


■ ■ 




JN • 






'«"< 


1 


Watch, out 
for 


4 


r* 


LUKt 

P -4 \ 


' ' 1 
< 1 




.^H 


Snake Design! 


BBhIw \A 


. 


*.« 


1 


f <2JQ 


te. iW 


1 




We offer you: 


inf ^ 1 




•.'L 


* In every game 
a bonus point. 


W^w*£L ! 1 




I^B 1 


* Collect the points 
and earn: 


'ik^i 




W'Jfl 


for 3 points a 
Snake buttom. 


1 40rji 






for 10 points an 
arcade game for free. 


1^7 m 






See the games In our 


ire Genera 


tion! 


next advertisement. 

Only software from 
Snake Design offers 
you Oils featuresMI 









, F W«tai W , I ""*»!' Suds,. 




Garrison 



looms of lino "ill* 
> D*tend TOurHN •8 w **S!f 
magician*. ■"■rdcrt*. w**" 
andphaiMoma 

* Cart you rescue "*e 
lovely pnneess? 

• Two "«»¥** °P 1 ' on Trve 
diaiactefSwehcoMr 



<^: 




Detonator 

• Zisp cjtcn and bang ihrough 
50 level; 0' pure 'u n 

• 0(9;.alsj»pcri, sound and music. 
4 Cofleci esiia actions K *ea»rn 

• Scrolling dackoround Graphics 

WPCons it** uttinatp game 
| • Bonus l*vel» m true 3D :-r 
gams in Ihe tj.innj 1 

.« ■J 
I'lfl' 




Available at these addresses: 



C.Ud 

723 Easi Skinner 
Wichita. Kansas 6721 1 
Phone: 3162673807 
Fa»: 3162670111 



American Software Distributor: 
B. B. 1. Box 290. Building 3 
Urbana, Illinois 61801 
Phone: 800-225-7941 or 

2t76432050 
Fa* 2176432049 



Impulse Inc. 

6870 Shingle Creek Partway 1 12 
Minneapolis. Minnesota 55430 
Phone: 800-328-0194 0/ 

612 566 0221 
Fax: 612 566 1822 



Mindware International 
1 10 Dunlop St. W. BOX221B5 
Same. Ontario 
Canada. L4M5H3 



Snake 

Design 

Software 

Phone: 01 149-69-7071 102 

Fax:01149-69-708525 



FormatMaster: the Professional 
Disk Formatting Engine 



by Carl Mann 



Perhaps one of the least appreciated 
programming Amiga languages 
available is the very first one that 
executes when the system is first 
powered-up and booted (after the 
Kickstart machine code, of course). 
This is the language which puts the 
familiar "Use Preferences tool to set 
date" message on your text screen. 
This neglected resource is capable of 
revolutionizing your approach to the 
Amiga system. It is easy to use, 
powerful, and enables you to make 
your machine do complex, repetitive 
tasks (such as formatting disks) with 
an absolute minimum wasted motion. 
This amazing tool is called AmigaDOS 
"Batch Language." 



Batching for Beginners 

What exactly is Batch Language? 
Simply stated, it is a pre-programmed 
sequence of DOS commands which 
can be consecutively executed by the 
host computer. Execution of these 
commands is controlled by the orderly 
arrangement of instructions contained 
in an ordinary ASCII text (or "Script") 
file. (On other computers. Batch 
Language is known as Job Control 
Language, EXEC, or AUTOEXEC.) 
The AmigaDOS Batch Language 
elements are contained in the "C" 
directory of your Workbench system 
disk, mixed in with the CLI com- 
mands. The conventional place for 
Amiga Batch language "Script" files is 
the "S" directory of that same Work- 
bench disk. 

There is a subtle difference between 
Batch and CLI commands: Batch 

language script files can invoke any 



and all AmigaDOS commands and 
options. From CLI, though, it is 
nearly impossible to find a good use 
for a hand-typed "IF... NOT... THEN... 
ELSE... SKIP... ENDIF" condition- 
testing and branching construct or a 
"wait for the keypress" routine. Both 
these techniques and much more can 
be built into Batch programs. 

The very first thing your Amiga does 
when you insert a Workbench disk is 
execute a Batch file. This file, named 
STARTUP-SEQUENCE, resides in the 
"S" directory of every viable Amiga 
Workbench disk. Without this file, the 
Amiga is no different from any other 
keyboard-driven silicon dinosaur. 
However, most STARTUP-SE- 
QUENCEs are rudimentary beasts at 
best. As delivered from your friendly 
neighborhood software supplier, the 
STARTUP-SEQUENCE generally does 
little more than remind the operator to 
set the date. It then may flash the title 
of the upcoming program onto the 
screen. Following this, display either 
the main Workbench executable 
module (named LoadWB) or the actual 
application program may be invoked. 
As a rule, the final act of such a file 
commits a certain form of suicide with 
a line that reads, "ENDCLI > NIL:." 
This statement closes the text window 
to reveal the familiar Workbench 
Intuition environment screen. 

Very good. The Amiga's all booted 
up, and I know everything is all right. 
I can use the mouse to open a window 
on my Workbench disk and I can even 
pull down my Workbench menus. 
Now I want to do some useful work. 



I will probably need to use that box of 
disks, right? Right. Here is where the 
pain (or fun, if you arc a masochistic 
person) begins. 



Building the Perfect 
Bootable Disk 

The difficulty in preparing formatted, 
bootable Amiga disks is especially 
severe if (like me) you start your 
Amiga career without an external disk 
drive. Swapping the Workbench disk 
with the target disk and back again is 
just not fun beyond the first few 
exchanges. First you click. Then you 
pull down to "FORMAT." Then you 
swap. Then you swap again. Then 
you click again. Then you wait. Then 
you swap again. Are we all in the 
same place now? Good! Now let's all 
open up a CLI window and learn how 
to do an INSTALL! Ready now, class? 
Hey, where did everybody go? Oh, 
forget it. 

FormatMaster relieves the frustration a 
friend and I both experienced with the 
ordinary ways of preparing Amiga 
disks for everyday use. You see, we 
expect our computers to serve our 
needs, not the other way around. The 
speech option was originally inspired 
by my friend David's seemingly 
"special" needs. (He's blind, you see.) 
Later, I needed to prepare twenty 
bootable disks for an upcoming event 
and wash a double sinkful of dishes at 
the same time. I then learned the true 
worth of properly applied speech 
technology. 



(continued) 



Amazing Computing V3.1 ©1988 



59 



This project is based on Amiga Work- 
bench 1.2. However, there is a little- 
known bug in the WB1.2 "FORMAT" 
command file which makes it bomb out 
with a failure code of 20. This bomb 
occurs when FORMAT 1.2 is executed 
from RAM: by a RAM>rcsident Batch 
file. What's worse, it gobbles up about 
30K of memory every time it does so. 
This causes an eventual GURU upon re- 
peated execution. However, the 
FORMAT command from Workbench 
1.1 works just fine. (Commodore's 
Software Development liaison insists this 
nastiness is actually a feature. Unfortu- 
nately, she had a hard time explaining 
the usefulness of this filthy behavior in 
rational terms.) 

To succeed at this project, you will need 
the following resources: 



• An Amiga computer system. 
(51 2K is required. One drive is 
OK.) 

• Workbench 1.1 (for its Format 
command) 

• Two fresh backup copies of your 
Workbench 1.2 disk. 

• The ability to start and use ed, the 
Amiga line editor. (The WB1.2 
version of ed is much better than the 
WBL1 release!) 

• Some skill in CLI commands, or a 
good file manipulation utility. (I 
highly recommend ZING! from 
Meridian Software.) 

• The two Batch files, S/STARTUP- 
SEQUENCE and PREPARED1SK.EXE, 
appearing in this article. (Both files 
must be copied verbatim and placed in 
the proper places on a Workbench 1.2 
disk to produce success!) 



The Startup-Sequence File 

S/STARTUP-SEQUENCE (Listing 
One) is a customized, turbo-charged 
Batch file. It transforms the stock 
Amiga computer into a factory for 
formatted, bootable disks. Under 
directions from this "script" program, 
the Amiga first sets aside 100K of disk 
buffer space. This apparently extrava- 
gant use of memory enables the 
system to load the "SAY" command 



into RAM storage from disk only once, 
yet execute it as many times as 
necessary. This feature, called "cach- 
ing," is a powerful hidden aspect of 
WB1.2. 

STARTUP-SEQUENCE then creates an 

explicit logical path from the boot 
disk's "Root" directory to its "System" 
directory. This enables AmigaDOS to 
locate and execute the "SAY" com- 
mand from disk. (Without this "path," 
AmigaDOS will bomb with an "ER- 
ROR CODE 205," which means, 'I 
can't find it!") 

The next STARTUP-SEQUENCE event 
is optional. I like to minimize the 
number of electrons per second 
streaming from the hot cathode of my 
expensive high-resolution monitor 
CRT. (1 just don't need a video screen 
blazing away into empty space while I 
bag the trash in the kitchen.) To avoid 
wasted electrons, I include the 
ScreenBlanker routine that MICROS- 
MITHS bundles with their FastFonts 
text utility package on most of my 
Workbench disks. This one is no 
exception. Omit or comment this line 
out of the Batch files in this article if 
you have no such routine in your 
Amiga library at the moment. Better 
yet, get FastFonts... 

STARTUP-SEQUENCE next copies the 
"COPY" command file to the Amiga- 
DOS RAM: device and changes the 
current directory to be RAM:. 
"COPY" executes directly from RAM:, 
bringing necessary elements of the 
FormatMaster system into the RAM: 
device as directed by the script file. 
Subsequent file copy and other 
execution operations take place strictly 
from RAM:. This serves three pur- 
poses. First, "COPY" need no longer 
be periodically re-loaded from the 
FormatMaster disk for re-cxecution. 
Instead, it executes directly from 
RAM:. Second, the target files also 
execute very quickly from RAM: 
because the continual disk access that 
AmigaDOS must undergo when 
executing consecutive command files is 
now handled electronically. Third, 



DFO: becomes available as a full-time 
production tool for the duration of the 
formatting session. Just imagine — no 
more "PLEASE INSERT VOLUME 
WORKBENCH" system requesters! 

FormatMaster's STARTUP-SEQUENCE 
also uses an undocumented, but 
genuine feature of the AmigaDOS 1.2 
"COPY" command to further reduce 
startup time. Note the vertical bar 
characters separating the target file 
names in the program lines which 
invoke "COPY." As you can see, the 
WB1.2 version of "COPY" can dupli- 
cate multiple files with ease. It is no 
longer necessary to execute a separate 
"COPY" command for each file to be 
duplicated. Instead, a number of files 
to be copied are entered as arguments 
on the Batch file command line with a 
vertical bar character separating 
("delimiting") them. 

There are a few limitations to this use 
of "COPY," but the example is an 
adequate illustration of acceptable 
syntax. Just make certain each file in 
the concatenated list is the same type 
and in the same directory as its 
neighbors. WB1.2 "COPY" does not 
cross filetype, directory, or device 
boundaries in mid-argument stream. 
In addition, no more than four or five 
files may be strung together at one 
time. (The exact number seems to 
depend on target file size.) As pub- 
lished, though, the system works very 
well. 

The "QUIET" option of "COPY" is 
invoked to suppress the reporting that 
would otherwise take place as "COPY" 
grinds away. The really critical events 
in the sequence arc announced by the 
"SAY" command. This eases tracing 
of the program's execution. 

Following its copy work, S/STARTUP- 
SEQUENCE loads the Workbench 1.2 
Intuition environment for later use. 
Control is then passed to the various 
command files previously copied to 
the RAM: device and to another script 
file, named PREPAREDISK.EXE (via 
the final "EXECUTE" command). 



60 



Amazing Computing V3.1 ©1988 



The Disk Preparation Loop 

PREPAREDISK.EXE (Listing Two) is 
the actual AmigaDOS-based formatter 
utility. It belongs in the "Root" direc- 
tory of the FormatMaster system disk. 
This Batch file performs its task strictly 
from the Amiga RAM: device. It 
invokes the AmigaDOS files that S/ 
STARTUP-SEQUENCE previously 
copied into RAM:. These command 
files consecutively format the blank 
target disk (following a tap of the 
<RETURN> key), make it bootable 
(with 'INSTALL"), and copy your 
favorite DISK. INFO and 
TRASHCAN.INFO files onto its 
surface. This last step makes it a 
breeze to produce a standardized, 
custom icon display. (I personally 
enjoy the appearance of the artfully 
animated DISK.INFO and 
TRASHCAN.INFO icons by Greg 
Tsadilas that arrived on my 
SCRIBBLE! word processor disk.) 

Once PREPAREDISK.EXE finishes 
processing your target disk, the event 
is announced in synthesized English. 
This process is then repeated on drive 
DF1:. Once DF1: has done its duty, 
PREPAREDISK.EXE then invokes 
itself again. "FORMAT," in turn, 
again waits for the <RETURN> key to 
be tapped before proceeding. This 
enables you to eject the freshly 
prepared disk. Another "raw" unit 
may then be inserted for processing. 
As noted in the listing, you can omit 
the marked portion of this file if you 
have a single drive Amiga system. If 
this is the case, you will most certainly 
appreciate the ease with which 
FormatMaster enables you to prepare a 
quantity of disks. Three or more 
drives? Just repeat the code sequence 
and change the drive references as ap- 
propriate. Ain't science grand? 



Building the System 

If you are at ease with the Amiga CLI 
and ed, you can give yourself the gift 
of continuous Amiga disk formatting 
by following these steps: 



1) From CLI, ED S/STARTUP-SE- 
QUENCE on a fresh copy of your 
Workbench 1.2 disk. Delete every- 
thing in sight. Type in Listing One 
exactly as printed. If you do not have 
FastFonts, omit or comment out the 
ScreenBlanker routine line, then exit 
with <ESC X> to save the file. 

2) From CLI, ED PREPAREDISK.EXE 
and copy Listing Two verbatim. 
Leave out the marked code section if 
you have a one-drive system, of 
course. Make certain you save your 
file to the root directory (top level) of 
your project disk. (Make it work first; 
then "tweak" it.) 

3) Copy the "FORMAT" command 
from the "C" directory of your 
Workbench 1.1 disk to the "C" 
directory of your WB1.2 project disk. 
Use whatever means are available. 
The project will not work without this 
specific file. 

4) Copy your favorite custom Disk.info 
and Trashcan.info icon files onto the 
project disk if you wish. 



Using the System 

Once you have fulfilled the directions, 
create a backup copy of your work. (I 
don't know why folks forget to do 
this!) Label both your newly created 
disks. Then protect your work by 
opening the Write Protect window on 
your "Worker" copy of the project. 
Place your new FormatMaster disk in 
DFO: and reboot with <CONTROL> 
<AMIGA> <AMIGA>. DFO: whirrs 
and gronks for a few moments and 
you should then be greeted by the title 
announcement and the "Please remove 
your boot disk" prompt. 

Note that you may easily format your 
FormatMaster disk by accident. 
Careful operating habits are important. 
Eject your boot disk when 
PREPAREDISK.EXE prompts you to 
do so. Just in case, though, make 
certain the write-protcct tab window is 
OPEN before you insert your hard- 
won work in the first place! (Oh, and 
please keep a backup copy on file!) 



Once the FormatMaster system is 
executing, you may format as many 
disks as your budget will support, 
without anything more demanding 
than a tap of the <RETURN> key. I 
hope you agree that FormatMaster is a 
worthwhile addition to your Amiga 
toolbox. 

This version of FormatMaster does not 
include a "clean" way to exit. To exit, 
simply reboot. If you need to use 
Workbench, just resize the FormatMas- 
ter window and proceed as always. 
(Mind you, one drive will probably be 
tied up...) You can also pop the disks 
out of the drive and tap <RETURN>. 
FORMAT will promptly bomb out and 
free up the drive. You can always 
restart FormatMaster by typing EXE- 
CUTE RAM:PREPARED1SK.EXE from 
CLI. 

If you wish to avoid ed and receive 
the FormatMaster Batch files directly, 
send a SASE (44 cents postage, please!) 
and a backup copy of your WB1.2 
disk. Three dollars will cover my time 
and incidental expenses (motoring 
over to the post office, wear and tear 
on the drives, etc.). 

Please feel free to distribute these 
batch files to other Amiga owners and 
users. David and I are especially 
eager to put this product in the hands 
of sight-impaired people who wish to 
use their Amigas more effectively. (I 
reserve the word "vision" to denote an 
inner quality not in any way con- 
nected with eyesight.) We particularly 
welcome direct correspondence from 
blind people and their friends. We 
intend to use our combined skills to 
put practical Amiga systems in the 
hands of folks who need speech-based 
computers, but who are not willing or 
able to spend thousands (or tens of 
thousands) of dollars for other existing 
(road outmoded and quack-voiced) 
hardware technology. We are certain 
the Amiga can be the solution for 
those of us who are presently unable 
to climb aboard the bus. Kindly direct 
correspondence to the author care of 
this magazine. 



(continual) 



Amazing Computing V3.1 ©1988 



61 



Enjoy FormatMaster! Spread it around! .'Viva Amiga! 
Sources for products mentioned in this article: 



Scribble! 

MicroSystems Software 

12798 W.Forest Hill Blvd. 

W. Palm Beach, FL 33414 

(800) 327-8724 
$99.95 



FastFonts 

MICROSM1THS 

Box 561 

Cambridge, MA 02140 

(617) 354-1224 

S34.95 




;■ 30 Warren Avenue 
;• Anesbury, MA 01913 



Listing One: Startup 



This startup-sequence goes in :he 
"S" directory of a standard Work- 
bench 1.2 disk. Its presence is 
required by the FormatMaster disk 
preparation system. This file plus 
the PREPAREDISK.EXE file Comprise 
the FormatMaster Disk Prep System. 

Filename - S/Startup-Sequence 

Carl W. Mann 

30 Warren Avenue 

Amesbury, MA 01913 



Addbuffers dfO: 100 ;Reserve 100K ol disk buffer space for 

;command cacheinq. 
path sys: system add ;Make "SAY** command quickly available 
run Screenblanker 5 ;Call your own PD or commercial 

;SCreenblanker routine here, or omit. 

Echo " Disk Preparation Toolkit V2.5* 

Echo " By C.W. Mann" 

Echo - 8/25/67- 

say Super Disk Formatter for the Amiga? Version 2 point 5. 

say Now copying needed files to RAM. Eyell b* back soon. 

copy dfO:c/copy to ran: ;First things firstl 

cd ram: :How shift gears * GO! 

copy dfOipreparedisk.exe to RAM; 

copy dfO:disk. info Strashcan. info to ram: quiet ;Qnly files 

of same type k in same directory can be 

concatenated as objects for COPY. . . no heed to list them 
onscreen. 

copy dfO;c/echolir.stall|assign|makedir to ram: quiet 
copy dfO ic/formatlexecute to ram: quiet ;Must use Workbench 1.1 

FORMAT command file here, 
copy dfO : system/say to ram: ;Keep It talking... 
ioadvb 
execute preparedisk.exe 



PREPAREDISK.EXE disk formatter 
uiility. Configured for two-drive 
system. 1 modify as necessary. Pat 
this file in the root directory 
of your rOrmatKaster system disk. 
Copy it to and; run it front RAH: 
using my special 5/STARTUP-SEGUENCE. 
(Ditto for the command files It 
calls. r Enjoy high-speed Amiga disk 
formatting today! IViva Amiga! 

Carl H. Mann 



Preparedisk V3.Q0" 

By C. w. Mann" 

8/26/67" 



Echo * " 

Echo " m 

Echo " 

EchD " 

Echo ■ 

Echo ■ w 

say Please ree move your boot disk. 

say Put disks to be formatted In D F and D F 1? Press ree turn to 

format DFO. 

format drive dfO: name "Empty" 

install dfO: 

copy disk. lnfaltrashcan. info to dfO: quiet 

raakedir df 0: trashcan 

say Disk in Drive Zero is formatted and bootable. 



LAW* out everything from here down 
to the next row of asterisks if you 
own a single-drive system. 



say How press ree turn to format Drive 1, 
format drive dfl: name "Empty- 
install dfl: 

copy disk. info | trashcan. info to dfl: quiet 
makedir dfl :trashcan 
Say Disk in Drive 1 is formatted and bootable. Wext victim 



execute ramtpreparedisk. cxe 



Listing Two: Preparedisk.EXE 



PREPAREDISK.EXE disk formatter 
utility. Configured for two-drive 
system} modify as necessary. Put 
this file in the root directory 
Of your FormatMaster system disk. 
Copy it to and run it from RAM: 
using my special S/5TARTUF-SEQUENCE . 
(Ditto for the command files it 
calls.) Enjoy high-speed Amiga disk 
formatting today! IViva Amiga! 



Carl w. Mann 

30 Warren Avenue 

Amesbury, HA 01*13 



Echo ** ■ 
Echo ■ * 
Echo " 
Echo " 
Echo " 
Echo " _ 

say Please ree move your boot disk. 

say Put disks to be formatted in D F and D F 1? Press ree turn to for- 
mat D F D. 

format drive dfO: name "Empty" 
install dfO: 

copy disk, info I trashcan. info to dfO: 
makedir dfO:traahcan 
say Disk In Drive Zero is formatted and bootable. 



Preparedisk V3.00" 

By C. w. Mann" 

8/26/87" 



quiet 



Leave out everything from here down 
to the next row of asterisks if you 
own a single-drive system. 



say Now press ree turn to format Drive 1. 
format drive dTl: name "Empty- 
install dfl: 

copy disk, infol trashcan. info to dfl: quiet 
makedir dflrtrashcan 
Say Disk in Drive 1 is formatted and bootable. Next victim! 



execute ram: preparedisk, exe 



•AC- 



62 



Amazing Computing V3.1 ©7 988 



^GUILD-THIEVE 






■ 










This is the difference befr 
reading an adventure 
and living one. 



Picture the most exciting text-only 
Adventure in your software 
collection— WITH PICTURES' 

GUILD OF 
THIEVES is the 
long-awaited 
sequel to THE 
PAWN, which 
came sizzling 
onto the software 
scene to awards 
and accolades. 
Both are available 
now from Firebird. 

These stunning 
Adventures, com- 
pletely different from any game you've 
ever played, seduce the sight with 




their breathtaking illustrations and 
engage the intellect with a truly revo- 
lutionary text-handling system. The 
most sophisticated parser on the mar- 
ket lets you input complicated 
sentences and interact with a whole 
cast of fascinating characters in the 
mythical kingdom of Kerovnia. 

GUILD OF THIEVES and PAWN, Com- 
puter Entertainment Adventure of the 
Year, come to you from Firebird, pub- 
lishers of world-famous leading edge 
games under the Rainbird label. 

You'll find the Firebird logo on other 
addictive Adventures too, as well as on 
absorbing Strategies, realistic Simula- 
tions, and fast-paced action Arcade 
games. 



Firebird brings the best in entertain- 
ment software to those who enjoy a 
whole range of interactive excitement. 
We'll prove to you that you don't have 
to keep switching brands to satisfy 
your obsession for challenge! 






' (S20ST Graphics) 



"The First Full Line In Software" 

Firebird Licensees, Inc. 

P.O. Box 49, Ramsey, NJ 07446 

(201)444-5700 

t 

Available for C-64, Amiga. Atari 5Z0ST. Atari 
BOO/130. Macintosh, IBM and compatibles. 
A "text-only" version is available for Apple 11 
computers at $39.95. 

Firebird, and the Firebird logo are registered trade- 
marks of Firebird Licensees, Inc. 



IBM is a registered trademark of International Business Machines Corporation. Amiga and Commodore 64 are registered trademarks of Commodore Business 
Machines, Inc. Macintosh and Apple II are registered trademarks of Apple Computer. Inc. S20ST is a registered trademark of Atari Corporation. 




V 



"%* 



^ 




K 



* .a at — O 

W i— -i _ <\ 



y .C 3 r- (1 . 



® Q-.2 o>« 



w c 



«oai2<<z 





^ 


^m i^^ 


tf> 










^ 




«/► 






Si 






z 
o 










£ 3 

° |£ > 

i-aO OO. 

Q Qui £ 

ui a </> _ 

= Q O 

S oe < 

— Q III 



=: a 

i£=i0 

lu.O S 

ft* 26 




c> g 

I u 

CO - 

O o 
CM a 

o 






u 

.. c 
o — 

■- c 
(too _ 

3 E <J>^ 
is to „ 

8 Si* 

>- O ; = 

£ %R ° 

w£0 a 

o2r"< 
z. s 

< 5 

co O 



is« 



c 


>• 


3 


c 


O 





O 


t/> 


m 


=1 


■a 


n 






>• 


c 




u 





c 









u 
ri 


3 


U 


■O 




O 


e 


i— 




c 


CI) 

r 






m 


a 
a 



o 



o 



w _ 



5 
O 

c 

Q> 
T3 



o 
■a 



u 

UJ 

3 



H 



o 

qL 

c 
"5 

2> 

a 

o 
o 



o 

o 



m 
o 

■ 

a 

CO 



c 
o 



> 
a 
o 




5 o 



3 © 

* 1 

©2 "° 

1|" 

©5 

sl 

1° 

on 
s o 



(to 



p a> 

c 
o 



© 

c 

'n 

o 

O) 
D 

5 



to 



o 



tf a 



o 

f 
(A 

§? 

0>w 

t <D 
<5 

to 
> 3 



c 
o 



S 



0> 

> 

c — 
o c 
o ° 

c = 

5 ° 
< >■*■ 

- 4) 

o « o> 

l!l 

>. £ < 

£ O C 
3*0 



c 
O 



o 

i 

< 



(to 
"5. 
o 
o 

« 

(to 
n 

(to 



IL 



^ O Q.£ <i) 
m 7? C o c 

■c- ? d © 

*- o 2 — "D 
o "o R = 

w <to « i: « 
5 O o ° £ 

B £ o -2 ?i 
.2 E © © £ 
-oS©f£ 
c o>a£ o 

□ *■£ o> 
a> o © •- - 

q.o.2£t 



<to-T 
o S * 

Si* 



3== 3^ 

S£cT3 

3 ■ 
O (to 



> 



2a 

*" *- (to 

sir 



Q- ■= 



ffi 

O 

o 



O 3 

o o 

*" >■ 

I* 

o>> 
E c 






co (D 



Oj2 



Q "o ^ <DE 



05? 



"O 



El 



O £2 r 3 

s£=o 

C D y C 

roEo* 



\ 



c 
O 

« to 

o 2 



>• 
o 



E 5) 

21 

^< 

(D "o 
</> d) 

5 o 



(to w 

a> Ti 



= <u 

(to £ 

CO © 

O D 

g E 

X S3 

Z c 



© (to 

o © 

a> ^ 
c © 

= © 

D Q. 

(to «p 
*• £ 
« S> 
© j= 
£0 

n a) 
*- > 
S20 

> O) 

c 

a 

a 

D 

5 



o 



i 5 

II 

o o 

E i 
o o 

O T3 
v> >" 
© £i 
'-= © 

^ a 
o 3 

5? 

TJ O 

© c 

<= 9 
© 

">< o 
(D * 

© S3 
2 8 



o © 

D a 



© 

CO 

3 



© 



> S 



(to 

2 



c 

2 © 

< E 

. c 

<D o 

© ■> 

K © 

■S "O 

O c 

</> D 

a g 



O 

Q. 



O 



>< 5 © 



5^ 

<T3 



© 
> 

© TJ % 

£ © = 

3 TJ t 

O C - 

o o < 



Forth ! 



Memory in the Amiga 



■ ;- ■. -. :•-:■:•■-:■:■ ■: :■ 



by Jon Bryan 



Memory in the Amiga, as you no doubt know, is divided 
into two basic types, CHIP and FAST. CHIP memory is 
located in the first 51 2K of the 68000's address space and is 
shared between the CPU and the Graphics, Audio, and 
DMA coprocessors which make the Amiga so powerful. 
The remainder of the 68000's address space is considered 
FAST memory. The main difference between the two types 
of memory is , while the 68000 has complete, unobstructed 
access to FAST memory, it must share CHIP memory with 
the coprocessors. Usually CHIP memory access is inter- 
leaved, but when the coprocessors need extra time, they can 
steal it from the CPU. 

Since it is generally better to run programs from FAST 
memory (for speed and conservation of CHIP memory), the 
operating system puts programs n FAST memory by default, 
unless told otherwise. Unfortunately, a program which 
contains pictures or sound data docs not run properly if it is 
loaded entirely into FAST memory. The coprocessors cannot 
access that data to display it or play it back. 

For this reason, the Amiga supports a technique called 
"scatter loading." A program may be saved to disk so the 
CHIP "hunks" are sifted out from the FAST hunks when it 
is loaded into the Amiga's memory. Many early Amiga 
programs (my own included) failed to make use of this 
capability and do not run properly on a machine with more 
than 51 2K of memory. 

The latest release of Multi-Forth (Version 1.21) really 
simplifies the process of properly "tumkeying" a program to 
avoid this problem. Just follow this procedure: Use 
GET.MEMORY to ask the system for a block of RAM. Save 
the handle and flag the word which references the handle 
with IN. HEAP. This step allows FORGET to return the 
memory to the system and TURNKEY to save the hunks 
along with the program, so they will be restored when the 
application is run. I've rewritten the hardware sprite 
defining tools which were presented several issues back to 
demonstrate the technique. They worked fine on my 51 2K 
Amiga when I wrote them, but adding Michigan Software's 
ore megabyte Insider caused all the sprites to disappear. I 
was also unable to resist the opportunity to incorporate a 
few other improvements in the code. This version works on 



releases of Multi-Forth prior to Version 1.21, but those of 
you who have neglected to upgrade must do a little more 
work when you turnkey the program. 

Before describing the revisions made to support machines 
with FAST RAM, I'd like to briefly cover some other minor 
changes in the code. For instance, the original version of 
the word "SpriteLine" used the following definitions: 

"SpriteLine" used the following definitions: 

256 CONSTANT ScanBufSize 

CREATE SconBuf ScanBufSize ALLOT 

: SpriteLine C-addrlNaddr2 ) 

ScanBuf ScanBufSze INFILE @ READ.TEXT 1- ( trim delim ) 

ScanBuf + DUP 16 - ; 

Its purpose was to parse 16 characters from a file which 
could then be interpreted and separated into bit planes. I 
was never very happy with the clumsiness of the definition 
and the need to create a buffer to hold the characters. The 
obvious choice for the job, "Word," can't get past the 
linefeed character which delimits each line in a text file, 
through. I eventually discovered the Multi-Forth word 
"SCAN" in the glossary, and used it to build a modified 
version of Word which gives the desired behavior. 

: WORD I ( delimiter-addr ) 

scan error" premature deiimiter * 

pocket bl over count + c! ( blank delimit the string) ; 

"Word I " automatically crosses and keeps track of line 
boundaries. "Blank" delimits the string (83-Standard 
behavior for Word, by the way), leaving the address of the 
counted string on the stack. "Word" is potentially ex- 
tremely useful and has a permanent place in my toolbox. In 
fact, I can't understand why Creative Solutions didn't define 
"Word" to behave this way. The SpriteLine definitions now 
become much more readable: 

: Sprite-Line (— addrl\addr2 ) \ indices for a DO. ..LOOP 

bl word I dup c@ 16 = not 

error" must be 16 characters! " \ a little error check 

1+ dup 16+ swap ; 



66 



Amazing Computing V3.1 ©1988 



The change in SpriteLine is cosmetic and doesn't extend 
beyond itself. A more important change — one dealing with 
the proper use of memory — appears in the updated 
definition of "Sprite," "Sprite" is the word which actually 
creates the binary image of a "simple" sprite in memory. 
The old version of Sprite used "ALLOT" to allocate space 
for the image in the dictionary. It worked fine on a 512K 
machine because it was ALLOTting CHIP memory. If the 
dictionary is in FAST RAM, however, "ALLOT" creates a 
serious problem. The solution involves using the word 
"GET.MEMORY" with the right parameters to ask the 
operating system for a hunk of CHIP memory to hold the 
image: 

: Sprite ( name ( height-) 

SlmpleSize CHIP CLEAR or get~emory \ returns a hande 

dup 0= error" couldn't get CHIP memory tor sprite ' 

dup CREATE . \ save the handle (behaves like a VARIABLE) 

in.heap \ and flag the new word 

@ \ handle points to a CHIP address 

4+ swap \ first 4 bytes are for system use 

SimplePlanes ; 



If successful, GET.MEMORY returns a "handle" which 
contains the address of the allocated memory. Otherwise, it 
returns zero and an error is generated. Sprite CREATEs a 
new word and flags it using "IN.HEAP" to indicate that it 
has a heap handle in its parameter field. That handle points 
to the block of CHIP memory whore the sprite's binary data 
is stored. The process of flagging words with IN.HEAP 
allows "FORGET" to return the memory associated with 
those words to the heap, and allows 'TURNKEY" to save 
the hunks along with the rest of the file. It is pretty 
unlikely that the hunks will be reloaded in the same place, 
so Multi-Forth also takes care of updating the handles when 
a turnkeyed program is loaded. 

Equivalent changes were made in the word "Attached," 
which compiles "attached" (16-color) sprites. "Attached" is 
a bit more complicated, but the principle is the same. An 
attached sprite consists of two simple sprites, with one 
sprite "attached" to the other to quadruple the number of 
colors. "Attached" asks for a memory hunk large enough to 
hold both images. 

"Sprite" and "Attached" create binary sprite images in CHIP 
memory and let you know where those images are stored, 
but one more level of sophistication is required to actually 
display the sprite. In Forth, you can create a defining word 
to do all the work for you, as I have done in the word 
"Make Attached." It creates a sprite image and gives it a 
name which, when executed, displays the sprite: 

: MakeArtached ( name ( height—) 

Attached \ create the image and give it a name 

DOES> (— ) \ specify its behavior 

@@ \ fetch the contents of the handle 

V (the CHIP address of the images) 



ViewAddress +vViewPort 
SWAP 2 DUP 
Ball +asEvenSprite 
SWAP +Evenlmage 
ChangeSprite 
Ball +asOddSprite 
SWAP +Evenlmage 
ChangeSprite ; 



\ viewPort 



\ the simpIeSprite structure 
\ binary data (spritelmage) 

V the other simpIeSprite 

\ binary data to be attached 



The only difference between this version of "MakeAttached" 
and the previous version is the addition of "@@" after 
"DOES>" to indirectly fetch the pointer into CHIP memory 
where the image resides. This version replaces binary data 
in the dictionary with a pointer to another pointer to the 
data in another part of memory. Make sense? Earlier 
versions of Multi-Forth required a two-step process to 
turnkey an application and save the blocks of memory 
pointed to by the IN.HEAP flagged words. 

TURNKEY" filename" word 

OPEN" filename* DUP APPEND. HANDLES CLOSE 

"Filename" is the name given to the turnkeyed file. "Word" 
is the Forth word which executes when run. Version 1.21 of 
Multi-Forth further automates the process, requiring only the 
first line TURNKEY" filename" word. It takes care of the 
rest for you. 

This technique is not restricted to graphics or sound data. 
Suppose your program needs a large chunk of memory for 
some purpose. ALLOTting space increases the dictionary 
size and makes it more difficult to find enough contiguous 
space to load the application into memory. If you use 
GET.MEMORY, you can break the application into smaller 
pieces, which easily fit into memory's nooks and crannies. 
This change could mean the difference between the program 
running or not running Cor at least saving you the trouble of 
deleting another program). Remember, the Amiga is a 
multitasking machine, and it always pays to be polite. 

HOT NEWS AND RUMORS 

It's official! There is going to be an ANSI Standard Forth. 

The X3J14 ANS Forth Technical Committee's first meeting 

was held in early August in Washington, D.C., with many 

Forth luminaries in attendance. It will be interesting to see 

how the committee's efforts progress over the next couple of 

years. 

The Forth Interest Croup's RoundTable on GEnie is another 
item of interest. If you have a question about Forth, GEnie 
is the place to ask. Everybody who is anybody in Forth 
appears to have joined (including me). Hope to see you 
there. Just type "FORTH" at any main menu prompt. 

Also, just a reminder about Creative Solutions' forum on 
CompuServe: I'm still sysoping the Amiga section, and with 
recent sales of A500s and A2000s, things are really picking 

(continued) 



Amazing Computing V3.1 ©1988 



67 



up. Type "GO FORTH" at any prompt to get there. If I 
can't answer your questions, someone from Creative 
Solutions will try. 

\Listing One 



: wordl ( delimiter-addr j 

scan error" premature delimiter * 

poctcet bl over count + c[ ( blanfc delimit the string ) 

: Sprite-Line (-addrl\addr2 ) 

bl ^ord I dupl 16 — not 

error" must be 16 characters! * 

1+ iup 16* swap ; 

( character\base— value ) 
Illegal Sprite Color" ; 
{ number \ address—) 
( separate the two bits) 
( slide the low-order bit up a word) 
( put them back together) 
{ ir.ove the stored value one place left) 
I and OR the new bits into place.) ; 
( imageVheight-) 



0-F 



ORSpritePlanes 



DUP 4* 8+ 



\ get hack, a handle 



75pritePixel 
DIGIT NOT ERROR " 

: OR_SpritePlanes 

SWAE 2 /MOD 

SWAI 16 SCALE 

OB 

OVER g 2- 

OR SWAP I 

: Simple? lanes 

dd spriteLlne- 

DO ICS 4 ?SprltePlxel OVER 

LOOP 4+ 

LOOP CROP ; 

: SimpleSize ( height-height \f bytes ) 

[ Sprita ( height-) 

simplesize CHIP CLEAR or get, memory 

dup 0- error" couldn't qet CHIP memory for sprite" 

dup CREATE , in. heap \ lay down the handle after the new word 

i 4+ swap SimplePlanes ; 

structure Attachedsprite 

simpleSprite STRUCT: -f-asEvenSprite 

simpleSprite STRUCT: +asOddSprite 

structure. end 

: CR At tachedP lanes ( char\even sprite\odd sprite—) 

LOCALS I odd even I 

DUP 4/ odd OR_SpritePlanes \ shift the two MSB' s 

3 AND even OR^SpritePlanes ; \ nsasfc the two lowest bits 

: AttacnedSize i height-he ighrVoff set \total size )» 

SimpleSize DUP 2* 2+ ; \ two sprites plus a two-byte pointer 



"...it ii small, install* with just a doubls-click on an ieon...a 
welcome ulilily far Amiga usert." 

-INFO magazine 

'...Wilhout a doubt, ths mosl Importanl program this monlh is GOMF. 
All Amiga users are sick and tired of losing running programs and 
data to the dreaded Guru, and anything that can slop this lerrible 
syndrome deserves a round of applause!" 

'...So if Gurus are getting to you, add GOMF lo your Amiga 
environmenl and you can start saying goodbye to me GURU too!' 

-Commodore magazine 

Now GOMF is even better! 
Version 2.0 NOW shipping 

NEW FEATURES include: 

-Automalic removal of ALL errors (task held, GURU, etc.) 

-Preserves low memory auto vector*. 

-NUKE those pesky CANCEL requestors once and for ALU 

-Eliminate ANY task or device AT ANY TIME. 

-auto-configures for 68000/68010/68020. 

-CLI and Workbench compatible. 

-Extensive, easy lo understand documentation. 

only $39.95 



height 



I 



lay down offset to attached iir^ge 
\ get attach bit 



: AttachedPlanes { imaqeVheiqhtVof fset-) 

LOCALS | offset | 

DO SpriteLine 

DO IC? 16 TSpritePixel \ allows characters 

OVER DUP offset + OR_Attachod?lajves 

LOOP 4 + \ increment the pointer 

LOOP DROP ; 

: Attached ( heiqht-l 

AttachedSizo CHIP CLEAR or qet .rtemory 

dup 0- error" couldn't, qet CHIP memory for attached sprite" 

dup CREATE , in. heap \ mark it for turnkey j 

\ the hunk address 

LOCALS I hunk offset 

offset 2+ hunk W! \ 

SPRITE_ATTACKED hunk 2+ offset 

hunk 6+ height offset AttachedPlanes : 

: +Evenlmaqe i addrl— addr2 ) 2+ ,- 

: tOddlmaqe 1 addrl-addr2 I DUP W( + : 

struct AttachedSprite Ball 

15 Ball +asEvenSprlte +ssHeight W! 

IS Ball +asOddSprite +ssHelght W! 

structend 

: MakeAttached I name ( height-) 

Attached \ CREATE is imtedded here 

DOES> (-) 

8S \ fetch the handle 

ViewAddress 4vViewPort SWAP 2DUP 

Ball +as£vensprite SWAP +Evenlmaqe ChanqeSprite 

Ball +asOddSprite SWAP +OddImage ChanqeSprite 

15 MakeAttached Ball 

0000001777000000 

0000754444570000 

00AG544334456A00 

008654433445000 

0B876544445671B0 

0B987665566789B0 

ECA9877777789ACE 

EDBA9988B899A3DE 

EEDCBBAAAABBOEE 

0FEEDCCCCCCDEEF0 

OFFEEEEEEEEEEFF0 

00FFFEEEEEEFFF00 

00FFFFFFFFFFFF00 

O0OOFFFFFFFFOOO0 

000OOOFFFF000OO0 



New Products for All AM/GAS 



Deluxe MIDI interface 

& rrpiy thl BEST lull ■■ ftilun-d MIDI ln|arfac» available for Iht AMIGA SOO/1OO0 Fully ta-p-Hbi* Wfth 
■ II programs Ihil u»« 111-1*1 MIDI itandard outpul. ONLY 1h» DELUXE MIDI INTERFACE ottan you 
SERIAL PORT Pmu-thfu, MIDI IN. MIDI THRU, and two SWlTeHABLE THRUfOUTS | Thl» Ii tha 
opllmum conllgurallon lor anyona with man than ont »ynth or olfitr MIDI davk*. No THRU on your 

I) r.|h[i }? No pr oblim' Simply lllp ■ twitch on tha Daluxa MIDI nitfltct, inn] avoid cciBy THRU bOXIll 
ir.-iui.i*r 0- loot ciblt. 1 yaar wan-amy 

Nltlf Specify modal SOO/1O&0 .«,■,«.« ,»..«.. fM 



TTL Hi-res Monitor Adapter 

Tor ihi Amiga ftDO/ 1004/3000 Piupi ir.ro RQBI port for ULTRACRISP l.ick*r ir,e high rttBlul40fl 
monochfami vldao output Parfacl for Hi-REB QRAPHICB. WORDPflOCES ilNG. CAD. DESKTOP 
PUBL19HINQ, BUSINESS, tie. ANY tp&liCtllon In ANY niolutlon Ii SHARPER and CLEARER Mthti* 
YTl Hi-r»i Montiof Adapiir. Pariaei foi ui* with tht Jow-eoil (iMtu 1100) tommooor* woi mofitoi 
or ■•.'--■■,■ to. Inctudai iaty initaiiAlian inilrueiioni. m duk mm a ipaciai ha -Rap WortSinch l&rt and 
ROB fron pan -Thru {a 10B0 RGB monltpr may b* ui*d ilmuHsmouiiy). 1 yi*r wt/ruily. 

(Mortilor not Irtelud id)...., „*,.«....., ,...„....„.„ %'■■.<■>■ 



Light Pen 



Ditignid lo work with ANY Amiga progrtn. I-, » LIQHT PEN and DRMfl (Jlowf DM of bfflh your BWMB 
and! t pro-quility LIQHT PEN ietth* ulfirnat* in prtclaion graph, z* PtrTicllor pajntinq. drawwq. 
Unhand SKETCMIN5. CAD indJ virtually ALL othar AMIGA pr-egiint Softwif* rittunt Insluda: 
tingit-plKll pr*ClllOfl, warlabl* lamlllvity, ZOOM mod*, button loggia, ale lr-: r i..i»i :n*rwtl S/f*mr 
DT-194A high quality two button llghlpfn. AtAft OROFff sPEcw Whil* tupplitt till, vnH alio 
Includa ■ handy P£N-HOOK thai inaahti tailtyloyoui moflllor lo hold th* AMIGA LKSMTPEN*han 
no| in ui*i 
(600^100 0/2000) |13t.»I 



AM pro2uc.li art NOW SHIPPING! PIiiii matt* chaqu* or monay ordar payabla lo. 



#120-1140 Austin Ava. Coqultlam, BC Canada V3K 3P5 
Phone (604) 939-823S Dealer Inquiries Invited. 

All ordi.-i add U iNpouvg AH prtcti In US J 
Ordir by phonal VISA. Mathrca/d. AME^wakoma 
US ofdari add |3 handling f*l. 
am i a* ii i >r|iiti>ii ii*i* **<*. *■ ct*» »!»■»-*■ if a, i*! 



•AC- 



68 



Amazing Computing V3.1 ©1988 



Advanced 6800Q Assembler Language Programming 

The Big Picture 



by Warren Ring 



This month I will show the system calls required to get 
characters in and out of the CLI, and an example of open- 
ing, reading, and closing disk files on the Amiga. 



Learning About Assembler on the Amiga 

In my quest to learn assembler on the Amiga, I toured my 
favorite book store, Op Amp Technical Books (1033 N. 
Sycamore Avenue, Los Angeles, CA 90038 (213) 464-4322). I 
found 21 different Amiga titles. This book store is by far 
the best I have seen for computer books. Unfortunately, 
none of the books dealt with the procedures to perform 
system calls from assembler programs. Only one discussed 
assembler language on the Amiga, and it concentrated on 
68000 op codes and didn't deal at all with system calls. 

While perusing messages passing through some BBSs, I have 
noticed one book keeps surfacing: Programmer's Guide to the 
Amiga by Robert Peck (Sybex). I have a copy of this book. 
Although it is written primarily for C users, it has much 
information that applies to all users. It tells why you 
perform certain procedures, as well as how you perform 
them. Message traffic on the BBSs indicates that many of 
the C examples don't work. From the little I've read, 
however, this book looks well worth the investment, even 
for assembler applications. 

1 also strongly recommend 68000 Assembly Language Tech- 
niques for Building Programs by Donald Krantz and James 
Stanley (Addison-Wesley). This book tells you everything 
you need to know about generic 68000 programming. It 
reveals which addressing modes are legal for each instruc- 
tion, and why special instructions and address modes are so 
great. 



Get the Right Tools for the Job 

Let's talk about software tools. To write and run assembler 
programs, you need an editor, an assembler, all the 
"include" files containing system macros and equates, and a 
linker. Much of the work on the AmigaDOS was reportedly 
performed on the Metacomco assembler. That bit of 
information told me that the assembler itself was probably 



well debugged. I tried two assemblers available on Fish 
disks. One crashed on takeoff; the other would not handle 
XDEF and ASCII statements properly. I also discovered 
there were no available include files available. My advice is 
pay the S80, and get the Metacomco assembler. This 
package also has the include files and a linker. Personally, I 
don't use their editor. I use Uedit from one of the Fish 
disks. Any Amiga club can get Uedit for you. It's not 
Word Star, but it's pretty good. 

Another tool you need is the Amiga ROM Kernel Reference 
Manual: Libraries and Devices. I consider this strictly a library 
call reference work. It tells you which values to place in 
each register for each system call. (I have seen at least one 
paperback book with similar information.) 

Now, you need a couple of batch files. In the directory you 
have assigned as O, create a file called "as," and insert the 
following two lines: 

.KEY name 

assem <name>.asm -o <name>.o -I <name>.lsf 

Next, create a file in the same directory called "Ik," and 
insert the following two lines: 

.KEY name 

olink <name>.o to <name> library libs:amiga.lib 

Put the amiga.lib file, which you cannot go anywhere 
without, into the directory you have assigned to LIBS:. 
Rename your "execute" file in your C: directory to "do." 
Give your assembler program filename an ".asm" extension 
("test.asm," for example). When you want to assemble it, 
enter "do as test," a test.o file containing the object code, 
and a test.Ist file containing the listing is created. Assuming 
it assembles with no errors, enter "do Ik test." An execut- 
able file called "test" file is very easily created. 

Also, copy the "include/exec/types.i" and "include/ 
libraries /dos.i" files from the Metacomco disk to the 
directory you have assigned as LIBS:. 



(continued) 



Amazing Computing V3.1 ©1988 



69 




...measures your stress level through innovative hardware. And golly 
gosh, do we have software! From a full-featured arcade game with 
sampled sound, to bar and analog graphs for your WorkBench, the 
five included programs will knock your socks and dry your eyes! On 
the serious side, the People Meter allows you to fully explore the realm 
of stress management. 

Requires an Amiga 500, 1000, or 2000 with at least 512K and 
Kickslart 1.2. Available from your Amiga dealer or order direct for 
$59.95 plus S3.50 shipping. CA residents please add 6.5% state tax. 
Aminetics P.O. Box 982-205, WhittierCA 90608, (213) 698-6170 
ftmiga is a registered Irademark^oj Comnwdore-Jimiga, Inc. 



A First Test 

Every time I get my hands on a new language or computer, 
I subject the new language/computer combination to a test 
that really shakes out any gaps. That test consists of writing 
a file hex dump routine. If you've used the CP/M pro- 
grams DDT, SID, or ZS1D, or the MS-DOS program DUMP, 
or the HTYPE function of the Amiga program DUI1I, you 
know 'what a hex dump looks like. A file hex dump 
program displays a file's data first as a group of hexadeci- 
mal numbers, and then as a group of ASCII characters, 16 
per line. 

To write a file hex dump program, you must open a file, 
read individual bytes, send characters out to the console, 
look for a key pressed to stop the display, handle bytes as 
integers, as well as ASCII characters ... just about every 
major system function in a language is needed. The 
manuals must also be written clearly enough for you to pick 
out the information without much difficulty. Well, the 
Amiga has proven to be a challenge, but not an insurmount- 
able one. 

The program in Listing 1 is not a hex dump progTam, but 
rather a "type" program. I have shown a type program 
here to keep the example short, while retaining all the major 



features of a hex dump program. You don't necessarily 
need a type program, but because you can see how system 
calls are handled. You can also use derivations of these 
routines if you are having trouble with system calls. 



Some Generalities 

First, let's cover some generalities about system calls. The 
AmigaDOS authors, in a real stroke of genius, knew they 
could not foresee all future system calls that would be 
needed. So, they created "libraries" of system calls. These 
are collections of system calls which can be revised. Each 
library is designated by an ASCII label. A table of jump 
instructions to the various routines in that library is located 
at the top end of each library. When you make a system 
call to open one of these libraries, AmigaDOS looks in ROM 
and RAM for the library. If it can't find that library, it 
looks on disk and loads it from there. Sheer genius, no? 

Now, you're probably saying, "Ah, but where is the routine 
to open a library — in a library, perhaps?" The exec library 
(which contains some system calls) is always resident, and 
the location of the jump table in that library is the only 
operating system constant known at link time. You must 
know the library where your favorite system call resides. 
Make sure that library is "open" before you make the 
system call. When you make an operating system call, you 
must know the location of the library which contains the 
routine you are calling. You must also know a symbolic 
offset into that library's jump table. This is not as difficult 
as it sounds. When you make a system call to open a 
library, the address of the library's jump table is returned. 
The symbolic offsets are in the amiga.lib file, which you 
simply include at link time as a library. 

As you develop a program and include more and more 
types of system calls, you usually make sure each library 
you want to access is opened at initialization time at the 
beginning of the program. You then make sure it gets 
closed before you exit. Otherwise, some resources wouldn't 
be freed up. So how do you know to which library a 
specified system call belongs? That's easy. Look in the 
Amiga ROM Kernel Reference Manual: Libraries and Devices, 
which contains a listing of all system calls, along with the 
libraries in which they can be found. 



The CLI Window 

OK, now let's talk about the CLI window. To do any work 
with console I/O in the CLI window, you must first open 
the "dos" library and locate the already open console input 
and console output "handles." A handle, in this case, is a 
data packet which describes the console. 



(continued on page 72) 



70 



Amazing Computing V3.1 ©1988 



PERFORMANCE! 

OR HOW TO OUTRUN THE 'SUN'. 




IT'S SIMPLE. 

JUST CALLTHE PERFORMANCE EXPERTS 
AT CSA, THE AWARD WINNING, 
TECHNOLOGICAL LEADER OF 
PERFORMANCE ENHANCEMENT 
PRODUCTS FOR THE AMIGA! 

Now you can transform your Amiga 500. 1000, or 2000 
into a super-powerful, low-cost workstation Py sporting 
a 68020 full 32-bit processor and optional 68881 co- 
processor "Piggyback" or CPU board from CSA. 

CSA. YOUR PERFORMANCE BOOSTER! 

Want to improve performance up to a whopping 
200%? 

Just run with a 14MHz 68020 alone. Now if you want to 
cross the finish line with up to a 400% performance 
increase, then add CSA's 32-bit RAM. For programs 
requiring a high degree of "number crunching", adding 
a 20MHz 68881 can reduce your running time from 
serveral days down to a matter of minutes! 

LEAVING 'EM IN THE DUST. 

Independent benchmark tests indicate vastly 
superior performance to the Macintosh II, VAX 8800, 
and Sun 3/160 Workstation. 

Whether you want to speed up your ray trace pro- 
gram from hours to minutes, or simply reduce the run 
time on your spreadsheet from minutes to seconds, call 
CSA today. 

CSA. 

We have the best solutions over the Sun. 



cm 



Computer System Associates, Inc. 
7564 Trade Street, San Diego, CA 92121 
(619) 566-391 1 • TELEX 333-693 



Macintosh .5 the trademark of Apple Computer Corp VAX Is the trademark ot Digital 
Equipment Corp Amiga is the trademark of Commodore Business Machines, Inc. 



DosLibraryHandle is the location of the jump table in the 
"dos" library. ConsolcInputHandle and 
ConsolcOutputHandlc are the locations of two packets of 
data used for console input and output, respectively. 

To display one character on the CL1 console, place that 
character in the lower byte of DO and call the DisplayChar 
routine as shown in Listing 1, 

To input a line of characters from a CON: window, call the 
GetLine routine shown here. When this routine returns, the 
line of text appears in LineBuffer. Set LineBufLen equal to 
the longest line of text you expect the user to enter. 

LineBufLen equ 80 

GetLine 

;This routine gets a line of 
; ASCII characters on the 
; console 

;0ut: LineBuffer - the line of 
; characters 

MOVEH.L D0-Q3/AO/A1/A5,- (A7) ;Push registers 

MOVE.L ConsoleInputHandle,Dl ;Read a line of 

MOVE.L (LineBuffer, D2 ; characters 

MOVEQ I Li ne Buf Len , D3 

MOVE.L DosLibraryHandle, AS 

SYS Read (A5) 

MOVEM.L (A7)+,D0-D3/A0/A1/A5 ; pop registers 

RTS ,- Return 

LineBuffer 

DS.B LineBufLen ;Line buffer 

CHOP 0,2 ; (Align on a word boundary) 



Before you exit your program, you call the CloseSystem 
routine. 

The routine used for inputting characters from the CLI 
window is a line input routine. It is not a character input 
routine. This discrepancy means several things. First, this 
routine does not return until you press the return key. 
Second, if you press the backspace key, the line input 
routine deletes the previously entered character, and 
backspaces the cursor — without your program getting 
involved. Third, you can limit the number of characters you 
want to take from the line, as defined above by LineBufLen. 
If you enter more characters than LineBufLen specifies, the 
extra characters are saved and given to your program the 
next time you ask for successive lines of characters. This 
process continues until the character stream you entered is 
exhausted. 

Each line-feed is converted to a "carriage-return and line- 
feed combination" for display upon output. Typically, 
Amiga text files have no carriage-return characters— only 
line-feeds— to save a small amount of disk space. (There is 



a side effect here. If you try to print a file by copying it to 
SER: or PAR:, rather than to PRT:, the carriage-return 
characters will not be inserted in your listing, making it 
useless.) I have not yet found a way to input a single 
echoed character from the CLI window. 



Retrieving the Command Tail 

Assuming your program was invoked from the CLI, you can 
retrieve the command tail — that is, the command line follow- 
ing the name of your program. When your program starts 
up (only if it was invoked from the CLI), register A0 
contains the address where the command tail is found. 
Register DO contains the number of characters in the 
command tail. For example, if you enter "copy filcl file2" 
into the CLI, then "file! filc2" is the command tail. The 
spaces before "filcl file2" are filtered out, and a line-feed 
character is appended to the string. In this example, DO 
contains the value 12. If you wish to use a filename in a 
command tail to open a file, you must locate the space or 
line-feed character following the filename and convert it to a 
null character (zero byte). 



The Icing on the Cake 

To assemble the program in Listing 1, type it in as file 
"typ.asm" and enter "do as typ." If you entered it properly, 
and put the two include files in your LIBS: directory, it 
should assemble without error. (If the assembler cannot 
find the include files in LIBS:, it asks you to insert disk "/ 
libs.") Enter "do Ik typ." If you put "amiga.lib" in your 
LIBS: directory, it should link without error. 

You now have an executable file called "typ." You may 
now type the contents of your typ.asm file by entering 
"typ typ.asm." This program runs a bit slow on my Amiga 
500. There is a good reason for this: We are getting data 
from the disk file, then displaying it one character at a time. 
If we increase the buffer size from one character to many 
more, it would run much faster. 

I have not described the disk I/O calls in detail, but their 
use is commented in the listing, and you can see what each 
register contains. One important disk I/O call I don't use 
here is the Seek call, which changes the location in the file 
we are reading. You can position your read/write location 
relative to your current position, or relative to the front or 
end of the file. 



Overview 

The methods of interfacing assembler language programs to 
AmigaDOS I present in this column are not necessarily the 
"right" ways to interface. The descriptions are also not 
necessarily complete. As far as I have been able to deter- 

(continued on page 74) 



J2 Amazing Computing V3.1 ©1988 



If You are Searching for a 



Monthly 

Resource to 



^ 






#ze Commodore 
^ AMIGA™... 





Wake up 
and Smell the Coffee!! 



P COMMODORE 6*i«-BMIQfl*lgBl 

\0!U\U\UUUlUL3^MjJiU \sScMcMsJ 

BB BHaooo oaa qqqq 

fr^- ^l I -/TP1 COMMODORE 

COMPUTERS 




617-237-B8HB 
The Memory Location 
395 Washington 5t. 
Wellesley, MR 02181 
Commodore Specialists 



There are currently five Amiga conferences on FidoNet. 
Your local Amiga user group should be able to fill you in 
on the nearest FidoNet node. If not, call me at 1939, and I'll 
find one for you. 



What I Hope to Accomplish in this Column 

As time goes by, I would like to accumulate a set of 
assembler utility routines that simplifies interfacing with 
AmigaDOS. I would also like a good set of macros, and a 
set of programming techniques making it nearly as easy to 
program the Amiga's higher functions in assembler as in C. 
I've seen it done on other machines, and it can be done on 
the Amiga. You'll experience the fastest programs you've 
ever seen on an Amiga, and they'll have capabilities not 
available in any high-level language. 



Next Month 

Next month, I'll show how you can put most of this 
program into a library, so you can use it without ever 
having to look at it again. We'll cover how to read the 
function keys and create new text windows. We will also 
discuss debugging tools. I planned to cover time-sharing an 
assembler program this month, using one code section and 
multiple data sections, but that topic will have to wait. 



i Listing One 



mine, no such "right" ways are documented in any 
Commodore literature. My methods have been gleaned 
from a number of sources, primarily methods I have found 
in the public domain. I would appreciate any insights you 
may discover about assembler programming on the Amiga. 
Just send them to me care of Amazing Computing, or send a 
message on BBS "1939" at (818) 368-4248. This BBS has two 
2400 baud modems, and has become the de facto confer- 
encing BBS for assembler language Amiga hobbyists in the 
Los Angeles area. Hookups into FidoNet are in the works. 

FidoNet is the hobbyist's version of electronic mail, similar 
to Usenet. If you have a modem and a communications 
program, such as Comm (available on a Fish disk), you can 
call the nearest node and send and receive messages with 
any other hobbyist in the world (if you know his node 
number), or send and receive messages on any of the 
conferences the local node monitors. To receive a FidoNet 
message, you must call your node usually within a few days 
of the time the message arrives. 

There are hundreds of nodes all over the world operated on 
a volunteer basis by hobbyists. How are the long distance 
charges covered? Some nodes have night access to WATS 
lines. Other nodes are covered by interested hobbyists who 
can afford it or charge a minimal fee, such as S10 per year. 



section code 



Include 
include 

XREF 
XKEF 
XHEF 

XKEF 
XBEF 
XHEF 
XBEF 
XBEF 

XSEF 



"libs: types . i" 
■lib»:do».i- 

_LVOOpenLibrary 
_LVOOpen 
_LVOClose 
LVOInput 
_LVOOUtput 
_LVOKead 
_LVOWrite 
_LVCCloseLibrary 

AbsExec3aae 



CHLr KACHO 

Display 10 

Display MACRO 

J5R DisplayLine 

DC.B U,0 

CNO? 0,2 
ENDH 



BufLen equ 12 8 



.■Buffer length 



Initiaiize5y3tera 



CMPI.L »1,D0 
BEQ NaFlle 



subi.l •:.: 
move.b ♦d,0(ao,bo) 



.-If there was no file 
,- specified, 
; then jump to NoFile 

.•Convert the terminating 
line- feed in the command 
tail to a null 



MOVE.L A0.D1 .-Open the file specified in 

HOVE.L tM0DE_0LDFILE,E2; the command tail 

HOVE.L DosLIbraryHandle,A6 

JSR _LVCOpen(A61 

TST .L DO 

BEQ OpenError ;If the file doesn't exist, 

MOVE. I. EO,FileHandle: then jurep to OpenError 



74 



Amazing Computing V3.T. ©1988 



Loop 



JSB 
TST.B 



jsn 
BRA 



HOVE.L 
MOVE.L 
JSR 

Dijplay 
CBLF 



GetFileChars.'Get bytes froja the file 
CO til «e have reached EOF, 

Eof ; then jump to Eof 

DisplayChars;Di3play the bytes 

Loop ;Jump to Loop 



FileMandle f Dl;Close the file 
DosLibraryHandle,A6 
_LVDCloie(A6) 

<'End of file.'> 



BRA 

NoFile 

Display 
CRLF 

BRA 



Quit ,-Jurap to Quit 

<'No file was specified. r > 

Quit ;Jurap to Quit 



QpenError 












Display 


c'Thera is no 


such 


file. 


'> 




CftLF 












Quit 












JSR 


ciosesyatem 


.- (Close the 


do: 


library) 


RTS 






•Exit 


the 


program 


System 


calls 










InitlaiireSystem 


;Thls 


routine 


Initializes 






the sy 


stem 







MQVEM.L DO-D3/A0/AlM5 f -(A7) ;Pu3h registers 



;Open the dos library 



HOVE.L _AbsExecBase,A$ 

LEA . L Dos Haree , Al 

MOVEQ tO, DO 

JSR _LVOOpenI,ibrary (AS) 

HOVE. L DQ,DcsLlbraryHandle 

HOVE.L DosLibraryHandle^S .-Save the console 
JSR _LVOInput tAS) ; input handle 

MOVE.L &0, Cons ole InputKandle: locally 

HOVE.L DosLibraryHandle f A5 ;5ave the console 
JSR JLVOOutput IAS) ; output handle 

HOVE.L DOaConsoleOutputHandle; locally 

MOVEM.L (A7)+,D0-D3/AD/Al/A5;POp registers 

RTS i Return 



DosName £C , & 

CHOP 0,2 



*dos. library' , 



closesysten 

HOVE. L _AbsExecBaae,A6 ; Close the dos 

HOVE.L DosLibraryKandle,Al ; library 

JSR LVCCloseLibrary (A6) 

MOVEQ #0,D0 

RTS ;RetUr 



GetFileChars 

;Thls routine gets ASCII 
: characters from the file 

.-Out: 

; Dd.B - the naiJaer of 

Characters read, 
; Line&uffer - the characters 

MOVEM.L D1-D3/A6/A1/AS,-(A7) .-Push registers 

HOVE.L FileHandle r Dl ; {File specifier) 

MOVE.L #Line3uffer,D2 ; {Buffer location* 

MOVE.L #BufLen,D3 ;<# of chars to get) 

HOVE . L DosLibra ryHandle, A5 
JSR _LVORead|AS) 

MOVE.L DD,CharsR«ad 



INTRODUCING. 



Proje^M 



Fuller Computer 
Systems Inr. 



__ 



._;. 



^LS 



An 

Evolution 

in Disk 

Utilities 

for Amiga™ 

Personal 
Computers! 



F 

E 
A 
T 
li 
R 
I 

N 
G 



■ An easy to use, friendly and intuitive user interface. 

• A powerful and fast disk backup tool that lets you make backups of 
your copy-protected Amiga software. 

• A disk editing tool that lets you edit raw MFM tracks, AmigaDOS 
sectors and AmigaDOS files (automatically calculating new 
checksums). 

• A disk cataloging tool that lets you maintain lists of your personal, 
public domain and commercial software. 

• A unique backup too) for duplicating other disk formats including 
MS-DOS PC-DOS and Atari ST. 

• An easy to read, informative user manual is included. 

■ This product is not copy-protected in any way. 



NOW SHIPPING! 

$49.95 ,,. 

Includes shipping and handling! 
Arizona residents add 6.5C£ sales tax, 



TO ORDER 

Send check or money order to: 

Fuller Computer Systems, Inc. 

P.O. Box 9222 

Mesa. Arizona B5204-0430 

Or CALL (602) 835-5018 



Amiga i* a Trademark of Commodore-Amiga, Inc. 



Dealer Inquiries Invited 



MOVEM.L {A7)+,D1-D3M0/A1/AS -'Pop registers 
RTS .* Return 



DisplayLine 



.-Display Line routine 

?This routine displays a line 
; of tent ofi the console 

;In; The line of text 

immediately follows the 
call to this routine, and 
: terminates via a zero byte 
followed by: 

CNQP f 2 

;Note; This routine expects the 
registers to be pushed 
in a specified order 



MOVE.L A2,-|A7) ; (Push registers) 
MOVE.L D0»-|A7) ; (Do not optindze this!) 
HOVE.L D2,-(A7> 

HOVE.L 12U7),A2; (set A2 to the address of the 
: word following the call to 
; this routine) 



DisplayLlnel 

MCVE.W <A2)+,D2 
HOVE.W D2,D0 
A5R.W tH,D0 
TST.B 
BEQ.S 
JSR 



If the raost-signlf leant byte 
; of that word is a zero byte 
(Advance A2 by one word) 
DO ; then jump to DlsplayLine9 

DisplayLine9 
Di splay Cha r : Di apl ay the byt e 
MOVE. 8 D2,D0 ; if the least-sit/niflcant byte 

BEO.S f!isplayLine9; of that word is a zero 
; byte, then jump to DisplayLlne9 
JSR DisplayChar: Display the byte 

BRA DIsplayLinel; Ja-np to DisplayLinel 



(continued) 



Amazing Computing V3.1 ©1988 



75 



INTERCHANGE 



Share objects between Sculpt 3D and VidcoScape 3D 

Use Sculpt 3D at an editor to create objects for VidcoScape 3D 

Use Sculpt 3D to make HAM ray-traced Videoscape 3D schemes 

Full Intuition interface for all function* 



Interchanf^™ converts Sculpt 3D objects to VUcoScapc 3D objects and 
back again. Save hours of uork and tedious calculations by using Sculpt 
3D to make VWeoScape 3D objects. Share objects wilh othcre. 

Price $49.95 

Send check or money order only. Hease Include S3.00 postage & han- 
dling. Wl and MA residents add 5% sales tax. This product requires 
Sculpt 3D and VidcoScape. It is not a stand-alone animation program. 
Send a stamped, self-addressed cm-elope ibr a catabg of Syndesis prod- 
ucts. Dealer inquiries invited. Interchange is a trademark of Syndesis. 
Sculpt 3D and VidooScapc 3D am registered trademarks of Byte by byte Cor- 
poration and Aegn Development, respectively 



SYNDESIS 



20 WEST STREET 

WILMINGTON, MASSACHUSETTS 01887 

617 ■ 657 • 5585 



MOVING? 




SUBSCRIPTION PROBLEMS? 



Please don't forget to let us know. 
If you are having a problem with your 
subscription or if you are planning to 
move, please: write to: 



Amazing Computing Subscription Questions 
PiM Publications, Inc. 

P.O. Box 869 
Fall River, MA 02722 



Please remember, we cannot mail your magazine 
to you if we do not know where you are. 



Please allow four to six weeks for processing. 



DisplayLine9 

MOVE.L A2,12(A7); [Set the return address to A2) 

MOVE.L (A7)+,D2 : (Pop registers) 
MOVE.L (A7)+,D0 : (Do not optimize this!) 
MOVE.L <A7)+,A2 



DisplayChar ; Display Character routine 

.-This routine displays one 
; ASCII character on the 
; console 

;In: <D0.B> - the character 

MOVEH.L D0-D3/Au/Al/A5,-|A7| .-(Push registers] 

MOVE.B DO, Msplaycharx .-Output a character 

MOVE.L ConsoLeOutputRandle.Dl; (File specifier) 

MOVE.L *Displaycharx,D2 ; [Buffer location) 
MOVEQ H,D3 | [t of chars to display) 

KCVE.L DosLibraryHandle,A5> 

JSB _LVOKrite(A5) 

MOVEH.L (A7)+,DO-D3/AO/A1/A5 ; (Pop registers) 

RTS .-Return 



EisplayChars ;Dlsplay Characters routine 

;This routine displays 
; ASCII characters on the 
; console 

;Inr LineBuffer contains the 
characters, 
; CharsRead - the number 
of characters in 
LineBuffer 

MOVEM.L D0-D3/A0/A1/A5,-(A7> ; [Push registers) 

MOVE.B DO, DisplayCharx ;Output a character 

MOVE.L ConsoleOutputHandle,Dl.' (File specifier) 

MOVE.L 'LineBuffer, D2 .-(Buffer location) 

MOVE.L CharsRead.M ; (* of chars to display) 

MOVE.L DosLlbraryHandle,A5 

jsr _LVOKrite(AS) 

M3VEM.L (A7)+,D0-D3/A0/A1/A5 .-(Pop registers) 

RTS ; Return 



LineBuffer 

DS.B BufLcn 
DisplayCharx 

DS.B 1 

CNDP 0, z 

CharsRead 

DS.L 1 



.'Character buffer 



CNOP , 4 

DosLibraryHandle 

DS.L 1 

FileHandle 

DS.L 1 
Console Input Handle 

DS.L 1 
ConsoleOutputHandle 

DS.L 1 

end 



•AC- 



76 



Amazing Computing V3.1 ©19S8 



By John Steiner 



Bug Bytes 

The Bugs & Upgrades Column 



Since starting this column, I have 
learned many new features of Amiga 
software ... new to me, at least. One 
such "new" feature involves Cold 
Disk's PageSetter and LaserScript. As 
a regular PageSetter user, I was 
surprised to learn that it reverses text 
(white characters on a black back- 
ground). If you were not aware that 
you could reverse text, all you need to 
do is make a box for text, fill it with 
black, then put \R in front of the text 
to be placed in the box. It reverses 
and prints properly (white characters 
on black) from PageSetter or PageFrint 
on a dot-matrix printer. 

This point brings up the bug I am 
reporting here: LaserScript docs not 
reverse the text when printing to a 
Postscript laser printer. An update is 
available from Gold Disk. Dr. Rod 
Ludwig also found a solution to the 
problem which can be used until you 
get the updated version from Gold 
Disk. When using LaserScript, print 
the file to disk, rather than to the 
printer. A Postscript file is not a text 
file at all. Rather, it is a program, and 
Postscript is a page description 
language. LaserScript takes a 
PageSetter document and generates a 
program to drive the Postscript laser 
printer. 

Here is Dr. Ludwig's solution. Use a 
text editor or word processor to load 
the Postscript file, and use the editor 
search function to locate the text you 
want reversed. For example, you 
might want to reverse the phrase 
"Amiga Users Group" in your news- 
letter. Locate the text in the Postscript 
file, which will appear in parentheses 
"(Amiga Users Group)." On the lines 



above and below the phrase, insert 
new lines that contain SETGRAY 
commands as follows: 

1 SETGRAY 
(Amiga Users Group) 
SETGRAY 

Use a communications program to 
send the file to the laser printer. 

Aegis Software's Draw Plus has a bug 
apparent to hard disk users. Starting 
Draw Plus from the CLI does not 
exhibit the bug, but using the Icon to 
start the program causes a problem 
with the plot routine. Normally, Draw 
Plus first plots to a disk file before 
sending the file to the plotter. The file 
is written to the hard disk normally, 
but when it starts to send information 
to the plotter, it reads the plot file on 
the disk in DFO: (if there happens to 
be one there), instead of the newly 
created plot file on the hard disk. 

When trying to load a file in Deluxe 
Paint (if you are using a hard disk 
and do not have floppy drive dfl:), 
you get a requester that says, "Insert 
disk dfl: in any drive." There is no 
way to change directories at this point 
because the only requester options are 
"Retry" and "Cancel." The Cancel 
option goes directly back to the 
program without bringing up a disk 
requester. If you have a drive DF1:, a 
requester says, "Insert disk in drive 
dfl:." If you insert any disk in DF1:, 
the load file requester appears nor- 
mally. 

A temporary solution to the above 
problem with a single drive system is 
to use ASSIGN from the CLI, and 



ASSIGN DF1: to DHO: (or any other 
logical drive you may have including 
RAM:). Then simply start Dpaint as 
usual. Thanks to Jacques Chatncy for 
reporting those two bugs. 

Absoft Corporation has released seven 
patch notices for version 1.2 of the 
AC/BASIC compiler. These patches 
are being sent free of charge to all 
registered users. The patches and a 
patch program are sent in printed 
form; the user must type the programs 
into a text editor or Amiga BASIC'S 
editor, and then compile. A copy of 
AC/BASIC is then inserted in the 
drive, and the patch program is 
executed. The program modifies the 
copy of AC/BASIC, correcting the 
problem that the patch was designed 
to fix. If you have had problems with 
certain AC/BASIC commands, you can 
use this patch list. 

Patch Description 

2.01 Fixes INSTR function 

2.02 Prevents CVL from eventually 
crashing Amiga 

2.03 Fixes interna! housekeeping in 
DECLARE FUNCTION 

2.04A/B Allows LOF & LOC to work on 

huge files 
2.05A/B Fixes handling of serial port 

CCOMr) 

2.06 Fixes Pug In PRINT USING with 
commas 

2.07 Fixes Pug In incremental 
garPage collection 

Absoft is also working on another 
release of AC/BASIC, due out before 
January 1, 1987. This release should 
fix the aforementioned bugs, as well as 
other problems which cannot be 
patched. This new release will be 

(continued) 



Amazing Computing V3.1 ©1988 



77 



distributed free to registered users 
only. Absoft encourages owners of 
AC/BASIC who have not yet regis- 
tered their compilers to do so soon. 

Robert Woell reports a new release of 
Absoft's Fortran compiler, version 2.3. 
Mr. Woell beta tested the 2.3 release 
and noted a few improvements. First 
of all, he previously used a very early 
release of 2.2, and there was a prob- 
lem with data in common blocks that 
was fixed in later shipments of 2.2. 

Some calls to Amiga functions have 
also been fixed. One major improve- 
ment in the new version allows the 
compiler to use RAM: files as a work 
area, if you have enough memory or 
your programs are small. This change 
sped up compile times by at least a 
factor of 2 on the tested programs. 
Extensions to the language have been 
added, so subroutines can be loaded 
and unloaded from memory under 
program control. If you sent your 
registration card, the upgrade will cost 



you $50; if you didn't send the card, 
send S50 and your disk. 

Send your registration card and 
technical questions to: Absoft Corpo- 
ration Technical Support, 2781 Bond 
Street, Auburn Hills, MI 48057 (313) 
853-0050 Telex: 235608 

Microlllusions has announced an 
update for The Faery Tale Adventure. 
If you cannot enter the building that is 
due north of the tavern in Tambrey, 
you need the update. Check the save 
function by beginning an adventure 
and entering the save command. If 
you end up in the CLI after the save, 
you need the update. To get the 
update, send in your original disk 
(and registration card, if you haven't 
already), to: Microlllusions, 1748 
Chatsworth Street, Granada Hills, CA 
91344 Attn: Faery Tale Update 

Electronic Arts has upgraded Arctic 
Fox to run correctly under 1.2 with 
more than 512K of memory. The 
upgrade costs S7.50, and EA asks that 



you return the entire Arctic Fox 
package. Send all upgrade requests to: 
Electronic Arts Amiga Upgrades, Box 
7530, San Mateo, CA 94403 

Electronic Arts will not accept tele- 
phone upgrades. Send check, money 
order or Visa/MC credit card informa- 
tion, and allow 4-6 weeks delivery. 

According to a notice left on People 
Link, Dan Browning of Progressive 
Peripherals and Software, has an 
upgrade to CLImate. The newest 
version of CLImate supports virtual 
disk VD0:, To upgrade, send your 
disk to: Progressive Peripherals and 
Software (Attn: Roy), 464 Kalamath 
Street, Denver, CO 80204 (303) 825- 
4144 

Thanks to all those who have passed 

along tips on upgrades and bug 

solutions. If you have any information 

you wish to pass along to our readers, 

send it to: John Steiner/Bug Bytes c/o 

Amazing Computing, P.O. Box 869, Fall 

River, MA 02722 

•AC- 



, COMPUTER MART 

[ ^r Your Texas Amiga Source 

* Immediate Access to over 400 Amiga Titles, 

Prices too low to print! 

We stock Amiga Software and Peripherals 

For A500, A1000, & A2000. 

Mon. thru Fri. 10:00 AM-7:00 PM, Sat. 12:00-5:00 PM 



CALL TOLL FREE 
800-443-8236 



CUSTOMER SERVICE 
409-560-2826 



Computer Mart . 105 Lynn Street . Nacogdoches, TX 75961 



78 Amazing Computing V3.1 ©1988 



B Spread 



by Bryan Catley 



A full-featured spreadsheet program 
written in AmigaBASIC™ 



nniGR 



QOB00 
QBDQS : 

DQDDQ 




BSpread is a full-featured spreadsheet program, written in 
AmigaBasic, and designed for those of you wondering 
whether you should spend the money on a commercial 
product. BSpread lets you become familiar with what a 
spreadsheet is, what it offers, and what features are best 
suited to you. It is powerful enough to handle most 
household requirements, and may even be powerful enough 
to satisfy the requirements of a small business. Who knows, 
once you start using BSpread (especially if you compile it 
with Absoft's AC/Basic compiler), you may not want to 
purchase that commercial product after all. 



Unlike many other Amiga 
spreadsheets, BSpread 
makes extensive use of the 
Amiga's user interface 
(Intuition) and, accordingly, 
is very easy to use. Some 
of its features are: 40 
columns by 50 rows, for 
2000 cells of a width of 5, 
10, 15, or 20 characters; 
automatic recognition of 
numeric input which may 
be displayed with either 
zero or two decimal places; 
the first columns (contain- 
ing row titles) may be held 
on the screen, while 
columns to the far right of 
the sheet are being worked 
on; columns and rows may 



Current sheet: unnaied 






'BSpread' - as AHigaBasicitn) Spread Sheet 

Written fer 'Mazing CwpHng' Hasazine 

to 



Copyright (c) 1987 to felineSystens 
All Rights fosmtl 



'ClicV to Start 



than having at least 512K of memory. It uses the standard 
AmigaBasic output window (on the Workbench screen), and 
there arc no requirements for special libraries or bmap files. 
By the way, when entering the program, please leave the 
titles intact. 

Once you have entered BSpread, test it menu item by menu 
item, until you are reasonably sure you have found all your 
typos. You will probably not be able to exercise every 
statement of code, but if you use every menu item, you will 
come close. 

You may also wish to change the "ON ERROR ..." statement 

near the beginning of the 
program to a comment 
while you are performing 
this test. If you don't make 
the change, you'll receive 
an error message when 
AmigaBasic finds a typo, 
without any indication of 
which statement caused it. 
Of course, don't forget to 
remove the "REM" or '"" 
before using the program 
for any real purpose. If 
you don't, and an error 
occurs, you could lose all 
of your work for that 
session. 



as 

'BSpread' 
Cham r 



-J 



be inserted or deleted, causing all other columns or rows to 
shift as appropriate; a cell's contents may be propagated to 
the right or down any number of cells; any number of the 
currently displayed columns may be printed or saved in an 
ASCII format for export to a word processor; keyboard 
shortcuts are available for the most commonly used com- 
mands; and many others. 



You will also notice "' SIGNORE ON" and '" SIGNORE 
OFF" remarks around a "CLEAR ,25000" statement under 
the "Xit:" label. These remarks are for the benefit of 
Absoft's AC/Basic compiler. They may be removed if you 
do not expect to compile BSpread. In fact, you should 
remove them because they will slow the exit processing con- 
siderably with the interpreter. 



Entering BSpread and Checking It Out 

BSpread is a long program, close to 1000 lines. Don't try to 
enter it all at one sitting, and save your work regularly. 
There are no special requirements to run BSpread, other 



Some BSpread Generalities 

When you bring up BSpread, you are presented with the 
working screen which contains the program titles. Clicking 



(continued) 



Amazing Computing V3.1 ©1988 



79 



the left mouse button removes the titles and places you in 
the working environment. It also insures the BSpread 
window is the current one. Notice that rows are labeled on 
both sides, while the columns are labeled across the top at 
the right side of each column. Column names range from A 
to Z, and AA to NN. 

Just above the column labels is a row of 40 small boxes, 
with the left-most one highlighted. Each box represents 
which column appears as the left-most column on the 
display. Just click in any box to change the column display. 
The column of 50 small boxes to the left of the screen 
performs the same function for the display of rows. As you 
change columns and rows, notice the delay before you can 
make another selection. This occurs because the program is 
redrawing the display area, even if it happens to be blank. 

The top line of the screen displays the name of the current 
spreadsheet; the second line is reserved for error messages, 
input, and a visual flag which indicates when the spread- 
sheet has changed from its original condition. 



removes the character to the left of the cursor; the "del" 
deletes the character under the cursor. New input is 
inserted at the current cursor position. 



key 



t ant: Siifle&tet.ks? 
1st rnJKt Mms * Stlctt a Cell. 



BSpread operates in two 

modes: Project and Cell. 

As the names imply, Project 

Mode gives you control over 

the entire spreadsheet. Cell 

Mode allows you to work 

with individual cells, and 

specific columns and rows 

of cells. Cell data and 

formulas are entered into 

the sheet in Cell Mode. 

When you start, you are 

automatically in Project 

Mode with only the two 

left-most menus available. 

As you move the pointer 

around the display area, 

each cell is highlighted; just click in a cell to select it and to 

move to Cell Mode. Now the right-most two menus are 

available. You move back to Project Mode by selecting the 

Exit menu item or pressing the "X" key. 



^amissions 
5In teres t 

S ..Wortee Paynent 

= "Car fayitent 

E Anerican Express 

= Nisa 
MasterCard 
liPhon? Cowany 
UElectric Conpany 
jflas Coipany 

'Total for Month 
~ Total 




October 
Intone Expenses 

im.u 

15*8.89 

258,88 
219,88 
58,11 
25,88 
16,75 
£1.-51 
41.68 



When running BSpread under the interpreter, you must wait 
a second or two for the cursor to appear the first time you 
are prompted for input (This is caused by the interpreter re- 
arranging memory to accommodate the sub-program which 
handles the input. It docs not occur again.). The input 
routine is a variation of my "Basic Input" sub-program 
which was fully described in Amazing Computing Volume 2, 
Number 5. 



The BSpread Menus 

BSpread is, for all intents and purposes, menu-driven. Ex- 
amining the four menus is a good way of learning what 
BSpread can do for you. Remember, many menu items 
have keyboard options (shown in the menus themselves and 
in parentheses below). These optional keyboard selections 

are not the familiar 
Amiga-key combinations. 
AmigaBasic does not 
support this option, and to 
access it via library 
routines would use too 
much memory anyway. 
Thus, an ordinary key 
press will have to suffice! 



tr^ 



'BSpmi' 



t: 

November 

hum Expenses Totals 
J88.68 mmnn 

1758 . 88 xtmum - 

255.6S 



986,88 xmmkkum 
258,88 'ii ' Hxw 

tCfi QA ■h-wMitfhWM ■'vtf 
IJviVV KKHAKXK" JL 

75,88 mmntumm 
36,88 



27,75 mi»(m „ 

35,25 wmuin . 

52, 3B *******#**; 



mnimtmni i ttii>ii iiii >> i ii i i>im» ii 



_^"Ti 



The Project Management I 
Menu is the first of two 
menus which give you 
control over the entire 
spreadsheet. Each option 
on the menu is described 
below. 

Load (L) asks for the name of a previously saved spread- 
sheet. You may optionally include the ".bsp" suffix. The 
spreadsheets can be loaded from any directory on any disk, 
simply by specifying the full path name. 



Spreadsheet names, which you can choose, always have 
".bsp" appended to them. You may enter this suffix 
yourself, or let BSpread do it for you. Similarly, ASCII files 
are always given a ".txt" suffix. 

When responding to requests for input, you are presented 
with the current value (if any), with a cursor over the first 
character. Pressing the "esc" key clears any current value to 
null; the cursor left and right keys move the cursor back 
and forth over the current value; the "back space" key 



Save (S) saves the current spreadsheet under the current 
path and name. If there is no current name, you are 
prompted for one. 

Save As (A) requests a new name before saving the current 
spreadsheet. You may optionally include the ".bsp" suffix. 
The spreadsheets may be saved on any disk, in any existing 
directory, simply by specifying the full path name. 

Text File (T) saves all 50 rows of a specified number 
(prompted for) of the currently displayed columns in an 



SO 



Amazing Computing 73.2 ©1988 



ASCII format, after requesting a file name. You may 
optionally include the ".txt" suffix. This format is suitable 
for loading into a word processor. 

Print (P) prints all 50 rows of a specified number 
(prompted for) of the currently displayed columns. 

Quit (Q) terminates BSpread and returns to AmigaBasic (or 
to the system if you are using a compiled version). 



The Project Management II Menu is the second of the two 
menus giving you control over the entire spreadsheet. Each 
option on the menu is described below. 

Calculate (C) resolves all the formulas in the spreadsheet in 
a left-to-right, top-to-bottom sequence with the results 
displayed as appropriate. 

Go To Cell,.. (G) requests a cell name, and then repositions 
the display so the named cell is in the upper left-hand 
corner of the display area. 

Clear Sheet removes all entries from the current spread- 
sheet, resulting in a clean sheet. 

Reset Sheet replaces all displays of formula calculations 
with asterisks. 

Cell Size 5,10,15,20 allows you to choose the width of the 
cells you with which you will be working. You may 
change widths at any time. The current width is indicated 
with a check mark. If you select a new width which is 
smaller than the current data, the data will be truncated on 
the right if it is character data, or replaced with "*LEN*" if 
it is numeric data. Note that all cells must always be the 
same width. 

Two Decimals states that all numeric values are to be dis- 
played with two decimal places. (Checked when selected.) 

No Decimals states that all numeric values are to be 

displayed as whole numbers. (Checked when selected.) 

Hold 1st Cols/Release Cols causes the first n columns 
(prompted for) to be fixed on the display, or to be released 
after being fixed. This option toggles back and forth, and 
allows row names to remain in place, regardless of which 
columns are in use. 

Make a Shell causes all numeric values to be removed 
from the spreadsheet, and all formulas to be reset to 
asterisks. This option allows a new spreadsheet "shell" to 
be created, so you do not have to reenter a standard scries 
of column and row names when you want to create a new 
sheet in the same format. 




Professional display and animation language for the Amiga™ 

Envision a creative freedom you've only dreamed about. Imagine page 
Hipping, color cycling, text generation, even IKK A\1M animations, all 
combined at the' same lime on the same screen. Now. from the simplest 
slideshow to the most sophisticated desktop video production, that dream 
comes true with the Director. 

• Use any IFF images, any resolution, any number of colors 

• Fades, Dissolves. Hlits, Wipe . Stencils 
■ Page Hip full or partial screens 

• Preload images, fonts and sounds up to your memory limit 

• Flexible script-based structure 

• Basic-like vocabulary: For Next. Gosuh Return. If Else Endif 

• Arithmetic expressions, random number generator, variables 

• Execute Amiga DOS commands from the script 

• Text string and file input and output 

• Keyboard and mouse interaction 

• Digitized soundtrack module 

• Supports HAM and overscan 

• Supports IKK ANIM playback 

• Built-in drawing commands 

• No copy protection 

• And much more . . . 




The Right Answers Group 
Department ( 
Box 3699 

Torrance, CA 90S 10 
(213)325-1311 



DEMO DISKS SlOeach 
Probe Sequence (512k) 
RGB (I meg) 



$69.95 



ktIl ivf Comrrnd.w 



Check or money order 
payable to: Right Answer: 
Pius 53 Uiispineand handling. 
OUE, resides add 6^ sal« Us 



The Cell Management I Menu is the first of two menus 
which give you control over individual cells. Each option 
on the menu is described below. 

Cell Data (D) allows you to enter new data, or edit existing 
data, in the currently selected cell. BSpread automatically 
recognizes character and numeric data, displaying it left or 
right justified in the cell. Numeric data may be entered 
with a leading "-" (to indicate a negative value) and /or with 
a "." (to indicate decimals). Any character data you enter 
should not include a "-" or a "." prefix. 

Cell Formula (F) allows you to enter a now formula, or 
edit an existing one, in the currently selected cell. The 
entered formula is never displayed on the screen (Its length 
may exceed the cell width.), but rather is shown as asterisks 
when unresolved, or as the actual value when resolved. 

Zero Cell causes the current cell to be reset to zero. 

Blank Cell causes the current cell to be reset to blank. 

Copy Cell is copied to a specified cell (prompted for). The 
original cell remains intact. 



Move Cell moves the current cell to a specified cell 
(prompted for). The original cell is reset to blank. 



(continued) 



Amazing Computing V3.1 ©1988 



81 



Propagate Right causes the current cell to be propagated to 
the right a specified (prompted for) number of times. 

Propagate Down causes the current cell to be propagated 
down a specified (prompted for) number of times. 

Go To Cell... (G) requests a cell name, and then repositions 
the display, so the named cell is in the upper left-hand 
corner of the display area. 

Exit (X) returns you to Project Mode. 

The Cell Management II Menu is the second of the two 
menus providing you with control over individual cells. 
Each option on the menu is described below. 

Zero Column causes all numeric cells in the current column 
to be reset to zero. 

Zero Row causes all numeric cells in the current row to be 
reset to zero. 

Blank Column causes all character cells in the current 
column to be reset to blanks. 

Blank Row causes all character cells in the current row to 
be reset to blanks. 



Absolute Cell Names. There are 40 columns named A to 
NN, and 50 rows named 1 to 50. To request a specific cell, 
just combine its column and row names. For example, Al, 
Z19, CC6, and NN50. 

Relative Cell Names. This form of cell specification is 
reserved for optional use within formulas, and must be 
enclosed within square "[]" brackets. The desired cell is 
specified as a plus or minus value to both the current 
column and the current row, represented by C and R 
respectively. For example, [C-1,R-1] refers to the cell which 
is one left and one up from the current cell; [C+5,R-10] 
refers to the cell five positions to the right, and 10 up from 
the current cell. Both column and row values must be 
specified, even if there is no change (Use a zero in this 
case — (C+0,R+1], for example.). Column and row values 
must be separated by a comma. 

A relative cell name is obviously longer than an absolute 
cell name; it often only needs to be entered once, though, 
and then propagated when a similar formula is required in 
a number of adjacent cells. Further, relative cell names are 
usually still valid after new columns or rows have been 
inserted or deleted! One drawback to using relative cell 
names is that they are not calculated as quickly as absolute 
cell names (even with a compiled version of the program). 



Insert Column causes a new column to be inserted as the 
current column. The existing current column, and all others 
to its right, are shifted to the right with the resulting loss of 
column 40. 

Insert Row causes a new row to be inserted as the current 
row. The existing current row, and all others below it, are 
shifted down with the resultant loss of row 50. 

Remove Column causes the current column to be removed 
from the spreadsheet. All columns to its right are shifted 
left one column. 

Remove Row causes the current row to be removed from 
the spreadsheet. All rows below it are moved up one row. 



Cell Name Specifications 

To perform certain functions (in response to a "Go To..." 
request, and in formulas, for example), you must specify, or 
name, the cell in question. Cells may be identified by their 
absolute name or by their relative cell name. The relative 
cell name is only valid in formulas. Cell names may be 
entered in either upper or lower case; either is perfectly 
acceptable. 



BSpread Formulas 

The heart of any spreadsheet is its ability to process formu- 
las and display the results. In BSpread, formulas may be 
entered into any empty cell by selecting the "Cell Formula" 
menu option (or by pressing the "¥" key) when in Cell 
Mode. When the formula is first entered, the cell appears 
filled with asterisks. It remains this way until the "Calcu- 
late" menu item is selected (or the "C" key is pressed) in 
Project Mode. The asterisks are then replaced with the 
result of the evaluated formula. 

A formula is a series of absolute cell names and /or relative 
cell references and /or numeric literals separated by arithme- 
tic operators. The numeric literals may optionally start with 
a "-" sign and may contain a decimal point. The supported 
arithmetic operators are + (addition), - (subtraction), • 
(multiplication), and / (division). Parentheses are not 
supported, and operations proceed on a strictly left to right 
basis. 

For example, to find the average of the contents of three 
cells, you would use a formula similar to: B10+[C+2,R- 
3]+D10/3. To express N20 as a percentage of NN10, you 
could use: N20/NN10*100. To add 25 percent to the 
contents of the cell directly above, you might use: [C+0,R- 
1]*.25+[C+0,R-1]. 



82 



Amazing Computing V3.1 ©1988 



Formulas may also reference cells containing other formulas 
which have already been evaluated. Evaluation proceeds in 
a left-to-right, top-to-bottom sequence. 

In addition to defining your own formulas, you may also 
use two special, predefined formulas to perform two of the 
most common calculations quickly and easily. "TOTCOL" 
totals all numeric cells that are above, and in the same 
column; "TOTROW" totals all numeric cells to the left, and 
in the same row. 

If a formula references a cell which does not contain a 
numeric value, an error message is displayed. The asterisks 
remain in the cell containing the formula which made the 
invalid reference. 



Error Messages 

A number of error messages may be generated. The 
meanings are usually fairly obvious in relation to the 
situation (Most are concerned with invalid formulas.). 

You may also receive an "AmigaBasic Error: n" message, 
where n represents the AmigaBasic error number you can 
look up in the AmigaBasic reference manual. At the same 
time, you are automatically returned to Project Mode where 
you may recover from the error or save the current sheet 
before quitting. 

Sometimes you must identify which statement caused the 
error. To do this, you must recreate the situation, using the 
interpreter, with the "ON ERROR ..." statement changed to 
a comment (just as you did during the initial checkout 
phase). The error is probably just a typo which survived 
your initial testing! 



A Simple Example 

If you've never used a spreadsheet, you should look at a 
simple example. One popular spreadsheet application is 
household budget management. So, to start things off, let's 
do a very simple household budget! 

First, we must decide what size cell to use, and whether to 
select zero or two decimals. For this example, the default 
width of 10 is probably adequate. As far as the decimals 
places go, it's up to you! Do you round things off to the 
nearest dollar, or do you like to see exact amounts? 

Having made those basic decisions, we now must decide on 
format. For this example, we'll use two columns for each 
month, one for income and one for expenses. This means 
the first two rows of our spreadsheet are reserved for 
column titles: month names in the first row, and 'Income" 
and "Expenses" in the second. In turn, the names for the 




saving utilities for EVERY 
Amiga owner! 

Create multiple preference settings. 

Quickly and easily restore them as needed. 

Edit, Sort, Delete and Undelete any of them. 

Fast, Fun and Easy to use, from WorkBench or CLI. 

Runs on ALL Amigas . . . 500, 1000 and 2000 

(V1.2 required). 

Multi-tasking. 

Not copy protected. 

Plus ... 3 other time saving utilities are included. 

Available NOW!!! 

Just send $29.95 plus $2.00 S&H to: 

SOFT* LINK inc. P.O. Box 304, Coventry, Rl 02816 

Dealer inquiries invited. 

Amiga is a registered trademark of Commodore-Amiga, Inc. 



individual line items appear on the left side of the spread- 
sheet. Because more meaningful names require more than 
10 characters, we'll use the first two columns for item 
names. 

Okay, load BSpread, click the left mouse button to start, and 
let's get going! 

We'll start with the income line item names. Move the 
pointer (the cursor will follow) to cell A3 and click. Cell 
A3 becomes the current cell, and you are now in Cell Mode. 
Now select "Cell Data" from the "Cell Mgmt 1" menu (or 
press the "D" key). You are prompted for the data to be 
entered into the cell. Type "Salaries" (without the quotes) 
and press return. Lo and behold, the word "Salaries" 
appears in cell A3! Now click in cell A4 and select "Cell 
Data" again. This time enter "Commissions." Note that 
you are not be allowed to enter the final "s" because it's the 
eleventh character (only ten characters are allowed in each 
cell). Press return, move the pointer to cell B4 and click. 
Select "Cell Data," enter the "s," and press return. 
"Commissions" now occupies cells A4 and B4. Using the 
same technique, enter "Interest" in cell A5. That's it for the 
income line! 



(continued) 



Amazing Computing V3.1 ©1988 



83 



Now for expenses. If you wish; leave a blank row following 
"Interest," then enter the following expense titles in column 
A, extending into column B where necessary: "Mortgage 
Payment" (or Rent), "Car Payment," "American Express," 
"Visa," "MasterCard," "Phone Company," "Electric Com- 
pany," and "Gas Company," The list is obviously incom- 
plete, but it will do for our example. In column C of the 

next row, enter the 10 character string " — " (ten 

dashes). In the next row, enter 'Total for Month" in 
columns A and B; go to the next row and enter "YTD Total" 
in column A. 

Jumping up to cell C2, enter the first column title "bbbbln- 
come" (bbbb represents four blanks and causes the title to 
appear right justified in the cell). In cell D2, enter "bbEx- 
penses." We just need to enter the name of the month. 
This entry can go in cell CI, Dl, or split in the middle 
between the two. I'd opt for the latter; it looks much neater. 
Repeat the column heading for a second month in columns 
E and F. Move over to column G and enter "bbbbTotals" in 
row 2. (We're only going to do two months in this ex- 
ample.) 

There are only two more things to do before we start 
entering actual data. First, click in the cell which contains 
the dashes, select the "Propagate Right" menu item, and 
enter "3" at the prompt. The cell of dashes is now spread 
across the spreadsheet an additional five columns. Second, 
enter the formulas. Entering these now, instead of waiting 
for the data in the spreadsheet to be completed, allows you 
to monitor the data are being entered. The most obvious 
formulas for use initially are the predefined "TOTCOL" and 
'TOTROW" formulas. 

Click in the cell in column C immediately below the cell of 
dashes. Select "Cell Formula" from the "Cell Mgmt I" 
menu (or press the "F" key) and, when requested, enter 
'TOTCOL" (without the quotes). The cell is then filled with 
asterisks, indicating it contains an unresolved formula. 
While the cell is still current, propagate (or copy) it to the 
right five columns (as you did with the dashes). 

Now click in cell G3 (to make it the current cell), select the 
"Cell Formula" menu item, and enter 'TOTROW" when 
requested. As before, asterisks appear in the cell. Now use 
the "Propagate Down" menu item to copy the formula 
down the column for each line item in your spreadsheet 
(except for the rows already containing 'TOTCOL" formu- 
las, of course). 

The only remaining formulas are the Ycar-To-Date ones. 
Well, in the first two data columns (C and D), this total is 
nothing more than a repeat of the months totals from 
directly above. In the YTD row of column C, enter the 
formula [C+0,R-1], and propagate it one column to the right. 
Obviously, this isn't really a formula; it simply copies the 



above total. The big advantage of doing this is, if we 
choose to insert more rows at a later time, this formula is 
still valid! 

For the third data column (and all subsequent columns), we 
want to add the contents of the cell immediately above the 
YTD cell to the contents of the cell two columns immedi- 
ately to the left. This formula looks like: [C-2,R-1]+[C+0,R- 
1]. Note the use of relative cell specifications. The same 
formula is now valid for every column! Enter it in the YTD 
row of column E and propagate it to the right the appropri- 
ate number of times (With our simple example, this move is 
only one column,). 

You now have a spreadsheet shell you can save for later 
use, or which you can start filling in right away (You can 
always use the "Make Shell" menu item, if you wish to start 
a similar spreadsheet from scratch.). 

Now, enter some data (Click in the desired cell, select the 
"Cell Data" menu item — or press the "D" key — and enter 
the data you desire.). Numeric data is recognized and right 
justified in the cell. Once you have a reasonable amount of 
data entered, return to "Project Mgmt" mode by selecting 
"Exit." Save your spreadsheet, and select the "Calculate" 
menu item (or press the "C" key). 

Calculation takes a little time; the entire sheet must be pro- 
cessed, and relative cell names are not calculated as quickly 
as absolute names. As results are evaluated, the asterisks 
arc replaced with the appropriate values. 

That's it! Your first spreadsheet is complete. Experiment 
with this example before creating your own spreadsheet. 



Finally... 

As I said earlier, BSpread is a long program. You may want 
to purchase the Amicus disk which contains it, instead of 
typing it yourself. If it has not found its way onto an 
Amicus disk by the time you read this, it shouldn't be too 

long before it becomes available, so write for it anyway! 



KSSSSSS&SKSSHSSB? 



"BSprrad" - an AniqaBsslc 1 * Spread Sheet,' 
Written for 'AT.azing Computing' Magazine 
by Bryan D. Catley, August ]9B7 



Listing One 



Copyright tc) 198T by Fel ineSystems* 
All rights reserved. 

CLEAR ,25000 : CLEAR , lOSOOQi : OPTION BASE 1 

MflxCol-40:MaxRov-5Q:CWidth-10:NumCQls-7:Yes-0 

B]fc-0:Cra-l :Mag-2:Yel-3:mO~0 : menu ID-O : menu tT-0 

n _0; x-O:y-0 :z-0:rowtop-0:cQlleft-Q:oldtOp-0 :oldleft-0 

Started -I :EndCol-7:ColLlte-Q:FirstCol-40:LastCol-'6Q0 

St art Row- 1 :EndEQv=19 :RouLite-0:Fir3tRow-32 ; LastRow-134 

ErrSw-0:RelSu-0:Tatal-0:CellMgrat-0:Kolding-0:HoldCols-0 

TcmpCo 1 -0 : TexpRow-0 : tf eGdgt -0 : A 1 lOK— 1 : Sa ved — 1 

xl-0 :row*-0 : colt-0 ;PrlntColl-6: Print Ravt-5 

Co llVaineS--":TypeFlagS-"":R«*sponseS-'":CBl 15-**" 

TempColS-*'*' iTercpRowS-'*" : Prompt 5"™ ": Prorapt2S- M " 



84 



Amazing Computing V3.1 ©1988 



a$-— :bS-"":x$-"":yS-"":25-~":FiieNm5-~":TxtNm$-"~ 

Formulas-"" :ErrHsg5-"":opS-"" : ops $-"+--/ ! " 

y.nsii$--t HtttHHIHUt, #i-":Key5-"" 

DIM IPeursot*l20|,CellLite»<165) 

DIM ColHdgS (MaxCol ) , BSpreadS (KaxCol , MaxRow, 2 ) , HKeysS (2 ) 

GOSUB InitializerON ERROR GOTO BasieError 

WHILE MOUSE (Q)-0:W£ND:WH1LE HOUSE |0) <>D :KEND 

LIKE HO, 32) -STEP (S60, 152) ,Gta,bf 

KaitFarUser: 

IF ErrSw-0 THEN 

COLOR Mag, BISt: LOCATE 2,1 

PRINT'Use Project Menus or Select a Cell. ":SPACES(33» ■ 
END IF 

raO-0:menuID-0:mehuIT-0:KeyS-"":ErrSw-0 
HKeysS ( 1 ] -"LSATPQ" :MKeysS (21 -"CG" 
WHILE mO-0 AND menuID-0 AND Key$--~ 
x-MOUSE (1 ) : y-HOUSE ( 2 ) 
IF x>FitstCol AND x<LastCol AND y>FirstRow AND ycUstRow THEN 
COSUB MouseOX 
ELSE 

IF oldtopoO THEN PUT(oldleft,oldtop),CellLiteS 
oldtop-Qirowtop-O :oldleft-0:colleft-0 
END IF 

mO-HOUSE(O) :menuID-MENU (0) : menu IT-MENU [1) :KeyS-INKEYS 
WEND 

IF KeyS<>"" THEN 
FOR n-1 TO 2 
x-INSIR (HKeysS (n| .UCASES (KeyS) I 
IF «<>0 THEN menuID-n:menulT-x:n-2 
NEXT 
END IF 

IF menuIDOO THEM ON nenuID GOTO ProjMgrr.tl, Pro jMgmtlt 
x-MOU5E(l> :y-MO p JSE<2) : WHILE MOUSE ( ) ; WEND 
IF x>40 AND x<600 AND y>16 AND y<24 THEN NewCoiumn 
IF x>4 AND x<16 AND y>29 AND y<179 THEN NewRow 
IF x<FirstCol OR X5600 OR y<FirstRow OR y>184 THEN WaicForUser 

CellSelected: 

CellCol-lNTIU-FirstCol)/(CWidth*BI+StartCol] 

CellRow-INT(<y-FirstRow|/8+StartRow| 

MENU 1,0,0:M£NU 2,0,0.-MENU 3, 0, 1 :MENU 4,0,: 

CellMgmt-- 1 

NewCellSelection : 

COLOR Mag,Blk:LOCATE 2,1 

PRINT"Use Cell Menus or Click in Another Cell."; SPACES (28) ; 

riQ-0:menuID-0:menuIT-0:KeyS-"":HKeys$U)-"DFSS$$5SCX":MKeysS<2)-"" 

WHILE mO-0 AND menuID-Q AND Key$-"" 

mO-MOUSE(O) :menuID-MENU(0) menu IT-MENU (1 1 :KeyS-INKEY$ 
(SEND 
IF KeySo"" then 

x- INSTR (HKeysS I 1),UCASES (Key!)) 
IF XOO THEN ir.enuID-3:menuIT-x 
END IF 
IF rcenuID<>0 THEN 

ON menuID-2 GOTO CellMgmtl, CellMgmtll 
ELSE 

x-KOUSEIl) :y-MOUSE(2| : WHILE MOUSE (0) <>0 :KEND 
IF x>40 AND x<6D0 AND y>16 AND y<24 THEN NewCoiumn 
IF x>4 AND x<16 AND y>29 AND y<179 THEN NeuRow 
IF xiFirstCol AND x<LastCol AND y>FlrstRow AND ycLastRow THEN 
GOSUB MouseOK:GOTO CellSelected 
ELSE 

GOTO NewCellSelection 
END IF 
END IF 

NewCoiumn: 

StartCol-INT(<x-40)/14) tl : LastCol-600 

IF StartColtNumCols>MaxCol THEN 

LastCol-< (MaxCol+1-StartCol) " (CWidth'B) ) *40 
END IF 

GOSUB BoColHdg: GOSUB shoData 
IF CellMgmt THEN CellSelected ELSE WaitForUser 

NewRow: 

StartRow-INT[(y-29)/3)+l: LastR OW-1B4 

IF StartRow*19>MaxRow THEN LastRow-) <MaxRou»l-StartRow| *8I +32 

G0SU3 DoRowHdg: GOSUB ShoData: 

IF CellMgmt THEN CellSelected ELSE WaitForUser 

CollMgmtl: 

ON menuIT GOTO CellData,CellFormula,2.eroCe:i,BlankCell,CopyCell 

ON menuIT-5 GOTO MoveCell, PropRight,PropDown,CMGoTo,Cell£xit 

CellData : 

CellValueS-BSpreadS (CellCol, CellRow, II 

TypeFlag$-3Spread$ (CellCol, CellRow, 2) 

COLOR Gra,Blk:LOCATE 2,1:PRI.VT SPACE5(68) 
LOCATE 2,l:PRINT"New Cell Value? *; 
x%-CWidth: Get Data CellValue$,"CHAR",x% 
IF CellValueS""" THEN 

BSpreadS ICellCol, CellRow, D-CellValueS 

BSpreadS (CellCol, CellRow, 2 (-TypeFlagS 
ELSE 



BSpreadS ICellCol, CellRow, 1 ] -"" 

BSpreadS (CellCol, CellRow, 2) -"" 
END IF 
GOSUB PrintCelliGOTO CellChanged 

CellFormula: 

CellValue5-MID$ I BSpreadS (CellCol, CellRow, 21,2) 

COLOR Gra, B1H; LOCATE 2,IlPRINT SPACES(SB) 

LOCATE 2, l:PRINT"New Formula? "; 

GetData CellValueS, "CHAR", 53:CellValueS-UCA5ES(CollValueS> 

IF CellValueSO"" THEN 

BSpreadS (CellCol , CellRow, 2 ) -"F"+CeIlValue$ 

BSpreadS ( CellCol , CellRow, 1 ) -STR INGS (CWidth , " ■ " I 
ELSE 

BSpreadS(CellCol, CellRow, 1)-"" 

BSpreadS (CellCol, CellRow, 2)-"" 
END IF 
GOSUB PrlntCell:GOTO CellChanged 

ZeroCell: 

BSpreadS ( CellCol , CellRow, 1 ) -"0" 
BSpreadS (CellCol, CellRow, 2) -"N" 
GOSUB PrlntCell:GOTO CellChanged 

BlankCell: 

BSpreadS (CellCol, CellRow, 1)-"" 
BSpreadS (CellCol, CellRow, 2)-"" 
GOSUB PrlntCelliGOTO CellChanged 

CopyCell : 

MoveCell ; 

Prompt$-"Target Cell? ":GOSUB GetCeilNum 

BSpreadS (Te^.pCol,TempRow, 1) -BSpreadS (CellCol, CellRow, 1) 

BSpreadS I TempCol , TempRow, 2 ) -BSpreadS ( Cel ICol , CellRow, 2 ) 

IF menuIT-6 THEN 

BSpread$ (CellCol, CellRow, l)-"":GOSUB PrlntCell 

BSpreadS (CellCol, CellRow, 2 I - " " 
END IF 
IF TenpCcl>-5tartCol AND TerapCal<-EndCol THEN 

IF TercpRow>-startRaw AND TempRow <-EndRow THEN 
IF menuIT-« THEN GOSUB PrlntCell 
x-Cel ICol : y-Cel 1 Row : Cel 1 Col-TempCol i Cell Row-TempRow 
GOSUB PrlntCell :CellCol-x:CellRow-y 

END IF 
END IF 
GOTO Cel lChanged 

PropRight: 

COLOR Gca,Bl It; LOCATE 2,1:PRINT S?ACES(68| 

LOCATE 2, 1 :PRINT J 'Numoer of Columns? ",- 

Responses-' 1 ": Get Data Responses, "INT", 2 ;y-VAL( Responses) 

IF Responses^"" THEN 

IF CellCol+y>HaxCol THEN y-MaxCol-CellCol 
FOR x-CellCol*l TO CellColty 
BSpreadS (x, CellRow, 1) -BSpreadS (CellCol, CellRow, 1) 
BSpreadS(x, CellRow, 2) -BSpreadS (CellCol, CellRow, 2) 
NEXT 

y-ytEndCol:IF y>EndCol THEN y-EndCol 
x-Cel ICol: FOR CellCol-xfl TO y:GOSUB PrlntCell: NEXT 
CellCal-x 
END IF 
GOTO CellChanged 

PropDown; 

COLOR Gra,Blk: LOCATE 2,1:PRINT SPACESI68) 

LOCATE 2, l:PRINT"Number of Rows? ",- 

Responses-" " : Get Da ta Responses , "INT" , 2 ; y-VAL (Responses ) 

IF Responses""" THEN 

IF CellRow»y>KaxRow THEN y-MaxRow-cellRow 
FOR x-CeilRow*l TO CellRowt-y 
BSpr eadS | CellCol, x,l | -BSpreadS ICellCol, CellRow, 1) 
BSpr eadSI CellCol, x, 2) -BSpreadS (CellCol, CellRow, 2) 
NEXT 

y-CeliRow+y:IF y>EndRow THEN y-EndRow 
x-CellRow:FOR CellRow-x+1 TO y:GCSU3 PrlntCell : NEXT 
CellRow-x 
END IF 
GOTO CellChanged 

CMGoTo : 

GOSUB GoToCell:GOTO NewCellSelection 

CellMgmtll: 

ON menuIT GOTO' ZcroCol,ZeroRow,BiankCol,BlanxRow, InsertCol 

ON menuIT-S GOTO InsertRow, RemoveCol, RefftoveRow 

ZeroCDl: 

BlankCol ; 

COLOR Mag, BliC: LOCATE 2,1:PRINT SPACES (68) 

IF nenuIT-1 THEN Pro-T^tS"" Ok to zero";?rorcpt2S-" this column?" 

IF BenuIT-1 THEN aS-"N" :hS-"0" 

IF menuIT-3 THEN Prompts-" Ok to blank":Prampt2S-" this column?" 

IF menuIT-3 THEN aS-"C":bS-"" 

GOSUB YesNo:IF NOT Yes THEN NewCellSelection 

IF menuIT-1 THEN LOCATE 2, 1 :PRINT"Zeroing column..." 

IF menuIT-3 THEN LOCATE 2, 1 : PRINT'Blanking column..." 



(continued) 



Amazing Computing V3.1 ©1988 



85 



this row?" 



FOR TempRow- 1 TO MaxRow 

ir BSpreadS (CellCol, TempRow, 21-aS THEN 
BSpreadS (CellCol, TempRow, U-bS 

x-CellRow:CellRov-TempRow: GOSUB Pri.-itCell : CellRow-x 
IF menuIT-3 THEN aSpread5ICellCol,TempRou,2]--" 
END IF 
NEXT 
GOTO CellChanged 

ZeroRow : 

BlanKRow: 

COLOR Mag,Blk:LCCATE 2,1:PRINT SPACES (6BJ 

IF raer.uIT-2 THEN Prompts-" OK to zero":Prompt2S-" 

IF raenuIT-2 THEN a$--N":bS-"0" 

IF menuIT-4 THEN Prompts-" OK to blank":Prompt2S-" 

IF menuIT-a THEN a$-"C":bS-"" 

GOSUB YesNo:IF NOT Yes THEN NowCcllSelect ion 

IF menuIT-2 THEN LOCATE 2, 1: PRINT"Zerolng column. . . ■■ 

IF mfinuIT-4 THEN LOCATE 2, 1: PRIHT"BlanKlng column... " 

FOR TempCol- 1 TO KaxCol 

IF BSpreadS (TempCol, CellRow, 2) -aS THEN 
BSpreadS (TempCol, CellRow, i ) -b$ 

x-CellCol : CellCol-TempCol; GOSUB PrintCell : CellCol-x 
IF menuIT-4 THEN BSpreadSITempCol, CellRow, 21-"" 

END IF 
NEXT 
GOTO CellChanged 



InsertCol: 

COLOR Mag, Blk: LOCATE 2,l:PRINT SPACES(6B) 
Prompts-" OK to loose" : Prompt 2 S-" column NN?~ 
gosub YesNo:iF not Yes THEN Newcel is elect Ion 
COLOR Gra,Blk:LOCATE 2, l:PRINT"Inscrting column..." 
IF CellCoKMaxCol THEH 

FOR TempCol-rtaxCol-1 TO CellCol STEP -1 
FOR TempRow-1 TO MaxRow 
BSpreadS (TempCol +1, TempRow, 1 1 -BSpreadS (TempCol, TempRow, 1) 
3Spread5 (TempCol* l,TenpRow, 2 > -BSpreadS (TempCol, TempRow, 2) 
NEXT 
NEXT 
END IF 
FOR TempRow- 1 TO MaxRow 

BSpreadS ( CellCol, TempRow, 1 ) -"" 
BSpreadS (CellCol, TempRow, 2) -"" 

NEXT 

GOSUB ShoData: GOTO CellChanged 

InsertRow: 

COLOR Kag.Slk: LOCATE 2,1:PRINT SPACE5(68> 
Prompts-" OK to loose":Prompt2$-" row 507" 

GOSUB YesNa:IF NOT Yes THEN NewCollSeloctlon 
COLOR Gra, Blk: LOCATE 2, 1 ! PRINT"lTUertlnc row..." 
IF CellRow<MaxRow THEN 
FOR TempCol-1 TO MaxCol 

FOR TempRow-MaxRow- 1 TO CellRow STEP -I 
BSpreadS (TempCol, TempRow+1, 1) -BSpreadS (TempCol, TempRow, 1) 
BSpreadS (TempCol, TempRow*l, 21 -BSpreadS ( TempCol , TempRow, 2) 
NEXT 
NEXT 
END IF 
FOR TempCol-1 TO MaxCol 

BSpreadS (TempCol, CellRow, 1 ) -"" 
BSpreadS (TempCol, CellRow, 2 1-"" 
NEXT 
GOSUB ShoData : GOTO CellChanged 

RemoveCol : 

COLOR Gra.BlK: LOCATE 2,1 1 FRIST SPACES(68I 

Prompts-" ok to delete": Prompt 25 -"cur rent column?" 
G0SU3 YesNo:IF NOT Yes THEN NewCellSelect ion 
LOCATE 2, l:PRIK7"Deleting column... - 
IF CellCoKMaxCol THEN 

FOR TempCOl-CellCol TO MaxCol-1 
FOR TempRow-1 TO MaxRow 
BSpreadS (TempCol, TempRow, 1) -BSpreadS (TenpCol-*-l, TempRow, 1) 
BSpreadS (TempCol, TempRow, 2 1 -BSpreadS (TenpCol+1, TempRow, 2) 
NEXT 
NEXT 
END IF 
FOR TempRow-1 TO MaxRow 

BSpreadS (MaxCol, TempRow, 11-"": BSpreadS {MaxCol, TempRow, 2)-*" 
NEXT 
GOSUB ShoData :GOTO CellChanged 

ReraovcRow : 

COLOR Gra.BlK: LOCATE 2,1:PRINT SPACESI6S1 
Prompts-" OK to delete" :Prompt2S-" current row?" 
GOSUB YesNo:IF NOT Yes THEN NewCellSelection 
LOCATE 2, l:?RINT"Deletlng row..." 
IF CellRow<MaxRow THEN 
FOR TempC0l-l TO MaxCol 

FOR TempRow-CellRow TO KaxRow-1 
3SpreadS (TempCol, TempRow, t) -BSpreadS (TempCol, TempRow* 1,11 
BSpreadS (TempCol, TempRow, 2) -BSpreadS (TempCol, TempRow * 1,21 
NEXT 
NEXT 
END IF 



FOR TempCol- 1 TO MaxCol 

BSpread 5 I TempCol, MaxRow, I)-" : 
NEXT 
GOSUB ShoData: GOTO CellChanged 



BSpreadS I TempCol, MaxRow, 21- 



saved": Prompt25-" Continue?" 

Yes THEN WaltForUser 



CellChanged: 

Saved-0: LINE (609, 9I-5TEP <6, 6) ,Hag,bf 

GOTO NewCeilSelection 

CellExit: 

IF NOT Holding THEH MENU 1,0,1 
MENU 2,0,l!MENU 3,0,0:MENU 4,0,0 
CellMgmt-0:GOTO WaltForUser 

ProjMgmtl : 

ON menulT GOTO LodShcet,SvSheet,SvSheetAs, SvTxt.prStart, Xit 

LodSheet: 

IF NOT Saved THEN 

PromptS-"Sheet not 

GOSUB YesNo:IF NOT 
END IF 
COLOR Gra.BlK: LOCATE 2,1: PRINT SPACES(68) 

LOCATE 2, l:PRINT"Load sheet? "*j 
LSget '. 

COLOR Gra,BlK: LOCATE 2,13:GetData FileNnS, "CHAR", 39 
IF FileNmS-"" THEN WaltForUser 

IF RIGHTS<FilQNmS, «]<>". bsp" THEN FileNnS-FiIeNmS»".bsp" 
OPEN FlleNsS FOR INPUT AS tl 
AfterOpert: 

IF ErrSw-1 THEN ErrSw-0 :GOTO LSget 
LOCATE 2,1:PRINT S?ACES<6S) 
LOCATE 2, l:PHINT"Loadlng sheet ".'FileNmS 
INPUT* l,CWidth,NumColj,St4rtCol,End'Col 
INPUT* l,LastCol,StartRow,EndRow, Last Row 
INPUTtl, Masks 
FOR TcmpCol-1 TO KaxCol 
FOR TempRow-1 TO MaxRow 

INPUT* 1, BSpreadS (Tern pCol.TempRow.il 

INPUT* 1, BSpreadS (TempCol, TempRow, 2) 
NEXT 
NEXT 

CLOSE tl: GOSUB DoCol lid g: GOSUB DoRawHdg 
MENU 2,5, 1:H£NU 2,6, 1:MENU 2,7,1 :HENU 2,8,1 
x-cwidth/5+4:KENU 2.x, 2 

Saved— 1: LINE (609, 9] -STEP (6, 61,BLK,bf : COLOR Yel,BlK 
LOCATE 1,16!PRINT RIGHTS (FileNmS, 52) ,- SPACES ( 52-LEN[FileNmS! I 
IF KIDS[MaskS,17,l)-*." THEN TwoDec ELSE NoDec 

SvSheet : 

SvSheetAs : 

COLOR Gra.BlK: LOCATE 2,1:PRINT SPACESI6B) 

IF FileNmS-" OR menulT-3 THEN 

LOCATE 2,l:PRINT"Save as sheet? "; 

GetData FileNmS, "CHAR", 50 
END IF 

IF FileNmS-"" THEN WaltForUser 

IF RIGHTS (FileNmS, 4)<>".bsp* THEN FileNmS-FileNnS+" .bsp" 
LOCATE 2, 1:PR1NT SPACES (6(> 
LOCATE 2, l:PRINT"Savlng sheet ".-FileNmS 
OPEN FileNmS FOR OUTPUT AS II 

WRITE* l,cwidth,NumCols, startCol.EndCol 
WRITE#l,LastCol,5tartRow,EndSow, Last Row 
KRJTEtl.KukS 
FOR TempCol- 1 TO MaxCol 
FOR TempRow-1 TO MaxRow 

WRITE *1, BSpreadS (TempCol, TempRow, 1) 

WRITE* 1 , BSpreadS ( TempCol , TempRow, 2 ) 
NEXT 
NEXT 

CLOSE *l:Saved--l:COLOR Yel,BlK 

LOCATE 1,16:PRINT RIGHTS (FileNmS, 521 , -SPACES ! 52-LEN (FileNmSI 1 
GOTO WaltForUser 

SvTxt ; 

prStart : 

COLOR Gra,Blk:LOCATE 2,1:PRINT SPACES (68) : ZS-"" 

LOCATE 2, 1 :PRINT"Numbor of columns? ";:GetData zS,"INT",l 

Z-VALI z SI : LOCATE 2,1:PRINT SPACE$(68) 

IF zXiumCols OR z<l THEN I-NumCols 

IF nenuIT-4 THEN 

LOCATE 2, l:PRINT"Savc as text tile? ■*; 

GetData TxtNmS,"CKAR",48 

IF TxtNmS-"" THEH WaltForUser 

IF RIGHTS |TxtNm5,4K>".txt" THEN TxtNmS-TxtNmSf.txt" 

LOCATE 2,1: PR INT SPACES 1 68 I 

LOCATE 2,l:PR[NT"SavIng text file ":TxtNmS 

OPEN TxtNltS FOR OUTPUT AS tl 
ELSE 

locate 2, i:PRiNT"Prlnting sheet..." 

END IF 

FOR y-1 TO MaxRow 

FOR x-StartCol TO StartCol»z-l 
xS-BSpreadS I x, y, 1 ) 
yS-LEFTS IBSpreadS (x, y, 2) , 1 1 
IF (yS-"N" OR yS-"F"l AND LEN (xSI iCWldth THEN 



86 



Amazing Computing V3.1 ©1988 



xS-"" LEN'"+STRINGS(CWidth-5,"*") 
END IF 

n-CWldth-LEN(xS);IF n<0 THEN (1-0 
IF y$-"C" OB yS-~" OK LEFTS |XS,1)-"*" THEN 
IF menuIT-4 THEN 
PRINT»l,xS;SPACE$ (n> ; 
ELSE 

LPRINT xS+SPACES(n); 
END IF 
ELSE 

IF menuIT-4 THEN 
PRINT'l, USING RIGHTS (Masks, CWidth );VAL(xS| .- 
ELSE 

LPRINT USING RIGHTS (Masks, CWidth) :VAL(xS) : 
END IF 
END IF 
NEXT 
IF menuIT-4 THEN PRINT* 1," * ELSE LPRINT " " 
NEXT 

IF menuIT-4 THEN CLOSEtl 
GOTO WaitForUser 

ProjMgmtll: 

ON menuIT GOTO Calculate, PRGoTo,ClrSheet,Reset5heet,CSz5 
ON menuIT-5 GOTO C5zlO,C5zl5,CSz20, TwoDec,NoDec,HoldRlso 
ON menuIT-11 GOTO Template 

Calculate : 

COLOR Gra,Blk: LOCATE 2, 1 :PRINT"Calculating. . . " .-SPACES (54 ) ; 
FOR CellRow-1 TO MaxRow 
FOR CellCol-1 TO KaxCol 

IF LEFTS(BSpreadS[CellCol,CellRow,2),l)-"F" THEN 
Formula S-KIDS (BSpreadS (CellCol, CellRow, 2), 2) 
Total-0:ErrSw-0 
IF FormulaS-'TOTCOL" THEN 

GOSUB TotalCols 
ELSEIF FomulaS-TOTROW" THEN 

GOSUB TctalRows 
ELSEIF Formulas""" THEN 
GCGU^i Evaluate 

END IF 
IF LEN [STR$ (Total) )>CWidth THEN 

ErrMsqS-"Hesult too big! " :£rrsw-l 
END IF 
IF ErrSw-1 THEN 

BEEP:COLOR Hag, Bl It : LOCATE 2,1:PR1NT SPACES ( 68 ) 
LOCATE 2,67-LEN(ErrMsgS] :PRINT ErrMsgS 
END IF 
END IF 
NEXT 
NEXT 
GOTO CalcXit 

TotalCols: 

IF CellRow- 1 THEN 

BSpreadS (CellCol, CellRow, l]-"0" 
ELSE 

FOR y-1 TO CellRow-1 

IF LEFTS (BSpreadS (CellCol, y, 2), 1)-"N" THEN 

Total-Total*VAL(BSproadS(CellCol,y, 1) I 
ELSEIF LEFTS(B5pread5<CellCol,y,2),l)-"F" THEN 
IF LEFTS IBSpread? [Celled, y,l) ,1)<>">" THEN 

Total-Total+VAL (BSpreadS (CellCol, y,l) ) 
END IF 
END IF 
NEXT 
END IF 

BSpreadS (CellCol, CellRow, D-STRS (Total) :GOSUB PrintCell 
RETURN 

TotalRows : 

IF CellCol-1 THEN 

3Spr eadSI CellCol, CellRow, l)-"0" 
ELSE 

FOR x-1 TO CsllCol-1 

IF LEFTS (35preadS(x, CellRow, 2) , 1>-"N~ THEN 

Total-Total+VAL [BSpreadS Ix, CellRow, 1) ) 
ELSEIF LEFT5IBSpreadS(x,CellHou,2l,l)-"F" THEN 
IF LEFTSISSpreadS (X, CellRow, 1) ,>><>"-- THEN 

Total-Total+VAL {BSpreadS (x, CellRow, 1 ) ) 
END IF 
END IF 
NEXT 
END IF 

BSpreadS [CellCol, CellRow, ll-STRI (Total) : GOSUB PrintCell 
RETURN 

Evaluate: 

op$-"+": Cel lvalues™"" : Formulas-Formulas +" ! " 

FOR x-1 TO LEN(FormulaS) 

xS-MIDS (Formulas, x, 1) :y-INSTR(opsS, xS) 
IF 1x5-" [" OR RelSw-1) THEN 
RelSw-l:CellValue$-CellValueS+xS 
IF XS-"]" THEN RelSw-0 
ELSEIF ly-0) OR (yOO AND CellValueS-"") THEN 
CellValueS-CellValueS+x$ 
ELSE 



y$-LEFTS(CellValue$, II 

IF (y$<CHR$CiB> OH yS3CHRS(57)) AND <y$<>"-" AND ySO"."> THEN 
CellS-CellValueS: GOSUB GetCelllD 
IF AllOK THEN 
y$-BSpreadS(TempCol,Te-pRow, 1) 
z$-BSpreadS(TempCol,TempRow, 2) 
IF LEFTS<zS,l)-"N" THEN 

CellValueS-y$ 

ELSEIF LEFTS lZS,U-~F" THEN 
IF LEFTS (yj, l|0-«" THEN 
CellValueS-yS 
ELSE 

ErrHsgS-"Unresolved Formula at "+CellValueS:ErrSw-l 
END IF 
ELSE 

ErrMsg5-"Character/Null at *'+CellvalueS: ErrSw-1 
END IF 
END IF 
END IF 
IF ErrSwOl THEN 

IF op$-"+" THEN Total-Total+VALICellValueS) 
IF ops-"-" THEN Total-Total-VAL(CellValueS) 
IF opS-""" THEN Total-Total«VAL[CellValueS| 
IF opS-"/" THEN Total-Total/VAL[CellValueSI 
0pS-x$ : Cel lValueS-" " 
ELSE 

x-LEN (Formulas ) 
END IF 
END IF 
NEXT 
IF ErrSw-0 THEN 

BSpreadS [CellCol, CellRow, D-STRS (Total) :G0SU3 PrintCell 
END IF 
RETURN 

CalcXit: 

LINE(609,9)-STEP(6,6l,.1ag,bI:Saved-0 
GOTO WaitForUser 

PRGoTo: 

GOSUB GoTocell:GOTO WaitForUser 

ClrSheet: 

Prompts-" OK to clear" :Prompt2S-" Sheet?" : GOSUB icsNo 

IF NOT Yes THEN WaitForUser 

COLOR Gra.Bl It: LOCATE 2, 1 :PRINT"Clearing Sheet ..." .-SPACES<51) 
FOR x-1 TO MaxCol 
FOR y-1 TO MaxRow 

BSpreadS ( x, y, 1 1 -" " 

B5preadS(x,y,2)-"" 
NEXT 
NEXT 

LINE<40,32! -STEP (560, 152) ,Gra,bf 
LINE (609, 9) -STEP (6, 6) ,B1X,M 
Saved— 1: GOTO WaitForUser 

ResetSheet; 

Prompts-" OK to reset" :Prompt2S-" Sheet?" :GOSUB YeaNo 

IF NOT Yes THEN WaitForUser 

COLOR Gra.Blk: LOCATE 2, 1 :PRINT"Resettlng Sheet ...",- SPACES (50) 

FOR CellRow-1 TO MaxRow 

FOR CellCol- 1 TO MaxCol 

IF LEFTS (BSpreadS (CellCol, CellRow, 2), 1)-"F" THEN 
BSpreadS (CellCol, CellRow,!) -STRINGS (CWidth, "«") 
GOSUB PrintCell 
END IF 
NEXT 
NEXT 

LINE (609, 9) -STEP (6, 6] ,Blk,br 
Saved-0:GOTO WaitForUser 

CSz5; 

CSjiO: 

CSzl5r 

CSZ20: 

MENU 2,S,1;HENU 2,6,):MENU 2, 7, Iskeku 2,«,1 

IF menuIT-5 THEN MENU 2. 5, 2: CWidth- 5 :Nu~.Cols-14 

IF menuIT-6 THEN KENU 2. 6, 2 : CWidth-10 :NumCols- 7 

IF menuIT-7 THEN KENU 2. 7, 2:CWidth-15 :HumCoIs- 4 

IF maniHT-8 THEN MENU 2, 1, 2: CWIdth-20 :NuroCols- 3 
GOSUB DoColHdg: GOSUB ShoData:GOTO WaitForUser 

TwoDec: 

KENU 2,9,2:KENU 2, 10, 1 :Mask$-"l t »»»t tt ItttHtt. (»-" 

GOSUB ShoDataiGOTO WaitForUsar 

NoDec: 

MENU 2,9, 1: MENU 2, 10, 2 :MasK5-"l#»f ##tt #Mt*»»(»lf-~ 

GOSUB ShoData;GOTO WaitForUser 

HoldRlse: 

IF NOT Holding THEN 

COLOR Gra.Blk: LOCATE 2,1:PRINT SPACES (68) 

LOCATE 2, l:PRINT"How Many? ": 

Responses-"" :GetData Responses, "INT", 1 : Hoi deal s-VAL (Responses ] 

IF KoldCols->NumCols THEN HoldCols-HumCols-1 



(continued) 



Amazing Computing V3.1 ©1988 



87 



StartCol-StartCal*Holdcol3:FIrstCol-4 0+CWIdth"8'HDldCols 
NumCols-NumCols-HaldCQls:PrintCoH-6+CWidth"Koldcols 

MENU 2,5,0:H£Ntt 2,6,0:MENU 2,7,0:MENU 2,8,0 

MENU 2,11,1," Release Cols ":Kolding — IrGOSUB DoColHdg 

MENU 1,0,0:MEN« 2,12,0;MENU 4,6,0:HENU 4,3,0 
ELSE 

StartCol-startCol-HoldCols 

IF StartCoKl THEN StartCol-1 
FirstCal-4 0:PrintColl-6:Hol<ling-Q 

MENU 2,5,1:MEHU 2,6,1:MENU 2,7, 1:MENU 2,8,1 

IF CWidth- 5 THEN MENU 2, 5, 1 : NumCola-14 

IF CWidth-10 THEN MENU 2, 6, 2 :NumCols- 7 

IF CWidth-15 THEN MENU 2, 7, 2 :NumCals- 4 

IF CWidth-20 THEN MENU 2, B, 2 :NumCols- 3 

MENU 2,11,1," Hold 1st Cols 

G05UB DoColHdg: GOSUB SnoData 

MENU 1,0,1:MENU 2,!2,1:MENU 4,6,1:MENU 4,8,1 
END IF 
GOTO WaltForUser 

Tejcplate : 

Prompts-" OK to Maxe":Prompt2S-" a Template?": GOSUB YesNo 
IF NOT Yes THEN WaltForUser 

COLOR Gra,31X:L0CATE 2, 1 1 PRIN7"Maxing Template ... ".-SPACES (50) 
FOR CellRow-1 TO MaxRow 
FOR CellCol-1 TO MaxCol 
xS-LEFTS (BSproadS (CellCol, CellBow, 21,1) 
IF X5-"N" THEN 
BSpreadS(CellCol,CellRow,U-"" 
BSpreadS (Celled, CellRow, 2)-"" 
GOSUB PrintCell 
ELSEIF x5-"F" THEN 
BSpreadS ( Cel 1 Co 1 , Cel IRow, 1 ] -STRI NG5 I CWl dth , ~ ■ " ) 
gosub prlntcell 
END IF 
NEXT 
NEXT 

LINE (603, 9] -STEP (6, 61 , Blx, bf 
5aved-0 : GOTO Ka It ForU se r 



BSpread' !" 



Xlt: 

IF NOT Saved THEN 

Prompt5-"Sheet not saved" :Prompt2S-"Qait 
GOSUB YesNo:IF NOT Yes THEN WaltForUser 

END IF 

MENU RESET: COLOR Gra,BlK 

" SIGNORE ON 

CLEAR ,25000 

> 5 IGNORE OFF 

CLSrEND 



YesNo : 

WINDOW 2, , (120, 51)- (2S8, 97) , 0,-1 
COLOR BlX,Yel:x-22 
FOR n-32 TO STEP -1 
LINE (0,n) -STEP 1137, 0) , Yel 
x-x-^l 

LINE [0, x) -STEP (137, 0) , Yel 
NEXT 

LINE ( 15, 31 (-STEP (32, 16(, Blx, bt: LINE 195, 31) -STEP (32, 16) ,Blx, bf 
UNE(12,2»)-STEP(32,16(,Gra,bf : LINE 1 92, 28) -STEP (32, 16) ,Gra, bf 
LINE (12, 28) -STEP (32, 16| ,Mag, b: LINE (92, 28) -STEP (32, 16) , Mag, b 
LINE (13, 29) -STEP (30, 14 | , Mag, b: LINE (93, 29) -STEP (30, 14) , Mag, b 
LOCATE 2,2:PRIHT prompt?: LOCATE 3,2:PRINT Frompt2S 
COLOR Mag, Gra : LOCATE 5,3:PRINT"Yes" :PTAB(100| ; "No"; 
NoCdgt — 1 
WHILE NoGdgt 

WHILE MOUSE (01 -0:WEND 
X-MOUSE ( 1 ( : y-MOUSE | 2 1 
IF y>28 AND y«44 THEN 
IF x>12 AND x<52 THEN 
Yes — 1 :NoGdgt-0 
ELSEIF x>92 AND x<122 THEN 
Yes-0:NcGdgt-0 
END IF 
END IF 
WHILE MOUSE (0)00: WEND 
WEND 

WINDOW CLOSE 2 
RETURN 

GoToCell: 

?rompt$-"Go To Cell? ":GOSUB GetCellNum 

StartCol-TempCol : LastCol-600 

IF StartCOl + NumColsWfaxCol THEN 

LastCol-( (MaxColtl-StartCol) • (CWidth'BII +40 
END IF 

StartRow-TempRow : La stP.ow-1 84 

IF 5tartROU+19:>MaxRQU THEN LastRow- ( (MaxRow+1-StartRou) ■ B)+32 
GOSUB DoColHdg: GOSUB DoRowHdg : GOSUB ShoData 
RETURN 

GetCellNum: 

COLOR Gra,BlK: LOCATE 2,1: PRINT SPACES < 68) : Cel IS-"" 

GCNget : 

LOCATE 2,1:PRINT Prompts. 1 

GeCData CellS, "CHAR", 4 :GOSUB GetCelllD 



IF NOT AllOK THEN 

COLOR Hag, Blx: LOCATE 2, 67-LEN (ErrMsgS) 

PRINT ErrMsgS:BEEP 

COLOR Gra, Blx: GOTO GCNget 
END IF 
RETURN 

GetCelllD: 

CellS-UCASES (CellS) :AUOK— l:Err5w-0 
IF LEFTS (CellS, U -"(" THEN 
n-1: GOSUB RelCell 

IF AllOK AND MID5 (CellS, n,l)-"," THEN 
GOSUB RelCell 
ELSE 

IF HID5ICellS,n,l|-"]- THEN 

ErrKsgS-'Mlasing Col/Row: "*Cell$ :ErrSw-l : A11OK-0 
ELSE 

IF ErrSy-0 THEN GOSUB RelCell 
END IF 
END IF 
ELSE 

G0SU3 AbsCell 
END IF 
RETURN 

RelCell: 

zS-MIDS (CellS, n,l I 
IF z$-"[" OR ZS-"," THEN 
n-n+l:zS-MID$(CellS,n, 1) 
IF zS-"C" OR zS-"R" THEN 
n-n+l:aS-MIDS(CellS,n, 11 
IF aS-"t" OH aS-"-" THEN 
n-n+l:yS-MIDS (CollS, ntl, I) 
IF yS-~," OR yS-"J" THEN 
yS-MIDSICell$,n,l) :n-n+l 
ELSE 

yS-HID5(CellS,n,2) :n-n*2 
END IF 
IF Z$-"C" THEN 

IF aS-"+" THEN TempCol-CeUcol+VAL(yS) 
IF aS-"-" THEN TompCol-CellCol-VAL(yS) 
IF TempCoKl OR TempCol>MaxCol THEN 
ErrMsgS-"Illegal Column: "+CellS :ErrSK-l :AllOK-0 :TempCol«l 
END IF 
ELSEIF zS-"R" THEN 

IF a$-"+" THEN TempRow-CellRov+VAHyS) 
IF a$-"-" THEN TempRou-CellRow-VAL(yS) 
IF TempRow<l OR TempRow>MaxKow THEN 
ErrMsgS-"llleg.al How: "+CellS :ErrSw-l :AllOK-0:TempRow-l 
END IF 
END IF 
ELSE 

ErrMsgS-"Illegal Operator: "+CellS:ErrSw-l :AllOX-0 
END IF 
ELSE 

ErrMsg$-"Must Specify a C or R: "+Ceil$:ErrSw-l :AllOK-0 
END IF 
ELSE 

ErrMsgS-" Illegal Relative Format: "+CellS:Errsw-l : A11OK-0 
END IF 
RETURN 

AbsCell: 

TempCol-0 

IF LEN(CellS)<2 THEN ACerrl 

IF LEN(Cell5)-2 OR LEN(Cell$)-4 THEN 

n-LENICellS! 17. 

TempColS-LEFTS (CellS, n) : TempRowS-RIGHTS (Cells, n] 
ELSE 

IF MID5(CellS,2,l|<CHR$(58) THEN 
TempCol S -LEFTS (Cells, 1) :TempRouS-RIGHTS (Cells, 2) 

ELSE 

TempColS -LEFTS (CellS, 2) :TenpRowS-RIGHT$ (Cells, 1) 

END IF 
END IF 
IF LEN(TenpCol$)-2 THEN 

IF LEFTS (TempColS, llORICHTSITompColS, 1) THEN ACorr2 

TompCol-26:Te.T,pColS-RIGHT$ (TempColS, 1! 
END IF 

TempCol-Te.T.pCol+ASC(TempColSI-64 
IF TempCoKl OS TempCol>KaxCol THEN ACerr2 
TempSow-VALtTexpRowS) 

IF TempRov<l OR TempRou>MaxRow THEN ACerr3 
GOTO ACexit 

ACerrl :ErrKsg$-"Illegal CelllD: ":GOTO ACerrEnd 
ACerr2:ErrKsgS-"Invalid Column: ":GOTO ACerrEnd 
ACerr3:ErrMsgS-"Invalid Row: ":GOTO ACerrEnd 
ACerrEnd:ErrMsgS-ErrMagS+CellS:A110K-0:ErrSw-l 
ACexit: 
RETURN 

ShoData: 

LINE IFlrstCol, FirstRoul - 1600, 1 92) ,Cra, bf 
rowtop-0: oldtop-0 :calleft-0: oldleft-0 
FOR CellRow-startRow TO EndRow 
FOR CellCal-StartCol TO EndCol 
GOSUB PrintCell 



Amazing Computing V 3.1 ©1988 



NEXT 
NEXT 

eel lcol-S tart col :CellRow-startRaw 

IF CellMgrct THEN x-FirstCol+4:y-FirstRow+4 :C05UB MouseOK 

RETURN 

KoumOK: 

n-CWidth"B 

rowtop-INTly/8)"8:collert-INT(<x-40)/n>*nt40 
IF calleft>LastCol-n THEN colleft-LastCol-n 
IF rcwtopOoldtop OR calleftooldleft THEN 

IF oldtopOO THEN PUT (oldleft.oldtap) .CellLitel 

puT(colleft,rawtop) ,cellLite% 

oldtop-rawtoptoldlefft-colleft 
END IF 
RETURN 

PrintCell: 

IF colleftoO THEN PUT(CQlleft,rawtop),CollLlto%. 
rovs-PrintRawl+CellRow-StartRcw 
col%-PrintCol%+( (CellCol-StartCal) "CWidthl 

IF roHl<24 AND rowt>4 AND col%c (77-cwldth) AND col»->PrintcoH THEN 
LOCATE io»t, colt : COLOR Blk.Gca 
x;-3Sproad$ (CellCol.CellRoW, 1) 
yS-LEFTS(BSpreadS(CellCol,CellRow, 2),1) 
IF (yS-"N" OR y5-"F") AND (LEN IxS) >CWidth) THEN 

COLOR Mag^RINT^LEN'-.-STRINGSICtfidtft-S,""") :C0LOR Blk 
ELSE 

n-CWidth-LENlx$) :IF n<0 THEN n-0 
IF yS-"C" OR yS-"" OR LEFTS (x$,l)-""" THEN 
PRINT LEFTS <xS,CWidth) .-SPACES in) I 
ELSE 

PRINT USING RIGHTS (MaskS,CWldth>:VAL(xS); 
END IF 
END IF 
END IF 

IF calleftoo THEN PUT (coHeft.rowtop), CellLltei 
RETURN 

DoColHdg; 

COLOR Blk, Mag: LOCATE 4,6:PRINT SPACES (70) : LOCATE 4,PrlntColt 

CETI24,24)-(24*CKidth"8-l,31),CellLito» 

EndCol-StartCol+NumCols-lsIF EndCol>MaxCol THEN EndCol-HaxCol 

f'OR n-startcol TO EndCol 

PRINT 5PC(CWidth-3):ColHdgS(n) i*i"» 
NEXT 

IF ColLiteOO THEN LINE (ColLite, 11) -STEP 1 10, 5) , Blk, bf 
n-4 1-13+ (14 "Started) 

LINE(n,n)-ST£F(10,5),Yel,bf :ColLite-n 
RETURN 

DoRowHdg: 

COLOR Blk,Mag:rowl-S 

LINE 124, 2() -STEP (15, 1601 1, Mag, bf 

LINE 1 600 , 24 ) -STEP 1 1 5 , 160) , Ma g, bf 

EndRow-StartRov*-18:IF Er.dRow>HaxRow THEN EndRou-HaxRow 

FOR n-StartRow TO EndRcw 

LOCATE row»,4:PRINT USING "tl'tm 

PRINT SFC<70): :PRINT USING -|»":n; 

rowl-rowl+1 
NEXT 
IF RowLite<>0 THEN LINE (6, RovLite) -STEP |8, 1 ) ,Blk,bf 

n-30-3+ (3«startRaw) 

LINE(6,n)-STSF(8,l),l!el,bf:RowLite-r. 

RETURN 

BasicError: 

COLOR Mag, Blk: BEEP: ErrSw-1 

IF ERR-S3 THEN 

LOCATE 2,53:PRINT-Fiie Not Found I - 

RESUME AfterOpen 
ELSE 

LOCATE 2,I:PFIHT SPACESI68) 

LOCATE 2, l:PRINT"AmlgaBasic Error:";SRR; 
END IF 

MENU 1,0,1:MENU 2,0,1:MENU 3,0,0:MENU 4,0,1} 
RESUME WaitForUser 

Initialize: 

FOR n-1 TO MaxCol:READ ColHdgS <n> :NEXT 

DATA" A", - 3"," C"," B"," E", " F", " C", " H" 

DATA" I"," J"," X"," L" ," K", " N"," 0"," P" 

DATA" Q-," R"," S-," T"," U"," V"," W", " X" 

DATA" Y-," 2",-AA","BB",-CC-,-DD",-EE-,-FF- 

DATA"GC","HH",-lI","JJ","!Qt*,"U,",-MM",-NN- 

PALETTE 0,0,0,0:PALETTE 1,0,0,0 

PALETTE 2,0, 0,0: PALETTE 3,0,0,0 

COLOR , Blk:CLS 

LINE (24, 24) -STEP (5 92, 160], Mag, b£ 

LINE 1 4 0,32) -STEP (560, 152), Gra,bf 

LINE (4 0,1 6) -STEP (560,7) ,Gra,b 

LINE (4, 29) -STEP (12, 15 0) ,Gra,b 

FOR n-54 TO 592 STEP 14:LINE (n, 16) -STEP 10, 7) , Gra :NEXT 

FOR n-32 TO 176 STEP 3 : LINE(4,n) -STEP 1 12, 0) , Gra:NEXT 

GETI24,24)-(31,31),IPcursorl 

GOSUB DoColHdg:GOSUB DoRowHdg 

COLOR Gra, Blk: LOCATE 2, 69:PRINT"Changed: " 



LINE 1608, 8) -STEP (8, 8 1 , Gra.b 

COLOR Yel,Blk: LOCATE 1, 1 :PRINT"Currcnt Sheet: unnamed" 

LOCATE l,69:PHINT"'BSpread'" 

MENU 1,0,1, -Project Mgnt I" 



HENU 
MENU 



1,1,1," Load 
1,3,1," Save As 



(L)":MENU 1,2,1," save (S)" 
(A)":MENU 1.4,1," Text FilelTI" 
MENU 1,5,1," Print (P)":MENU 1,6,1," Quit 101" 
MENU 2, 0,1, "Project Hgmt II" 

MENU 2, 1,1," Calculate (C)":MENU 2, 2,1," Go To Cell...<«" 
MENU 2, 3,1," Clear sheet "sMENU 2, 4,1," Reset Sheet 
MENU 2, 5,1," Cell size 5 ":MENU 2, 6,2," Cell Size 10 



Cell Size 20 
No Decimals 
Make a Shell 



MENU 2, 7,1," Cell Size 15 ":MEMJ 2, 8,1, 

MENU 2, 9,2," Two Decimals *:MENU 2,10,1," 

MENU 2,11,1," Hold 1st Cols -:MENU 2,12,1," 

MENU 3, 0,0, "Cell Mgmt I" 

MENU 3,1,1," Cell Data |D)~:HENU 3,2,1," Cell Formula 

MENU 3,3,1," Zero Cell ":MENU 3,4,1," Blank Cell 

MENU 3,5,1," Copy Cell ":MENU 3,6,1," Move Cell 

MENU 3,7,1," Propogate Right "iMENU 3,8,1," Propogate Down 

MENU 3,9,1," Go To Cell. . . (G)":MENU 3,10,1," Exit 

MENU 4, 0,0, "Cell Mgmt II" 

MENU 4,1,1," Zero Column 

MENU 4,3,1," Blank Column 

4,5,1," Insert Column" 



(F)" 



ixr 



MENU 
MENU 



*:HENU 4,2,1," 
IMENU 4,4,1," 
IHENU 4,6,1," 



4,7,1," Remove Column" :KENU 4,8,1, 



IF X5-CHRSI31) 

IF x5-CHR5(B] 

IF XS-CHRS1127) 

IF XS-CHRS(27> 

IF x5-CHt»$(13> 



Right-cursor 

* Left-cursor 

1 Back-apace key 
Delete key 
' Escape key 

* Return key 



Zero Row 
Blank Row 
" Insert Row 
" Remove Row 
COLOR Blk, Gra: LOCATE I 9, 32 :PRINT"' Click' to Start" 
LOCATE 7,19:PRINT"BSprcad' - an AmigaBasic (tm) Spread Sheet" 
LOCATE 9,20:PRINT"Written for 'Amazing Computing' Hagaiine" 
LOCATE ll,39:PRINT"by" 

LOCATE lS,22:PRINT-Copyrlght (c> 1987 by FelineSystems" 
LOCATE 16,31:PRINT"A11 Riqhts Roscrved" 
COLOR Mag, Gra: LOCATE 13, 32 :PRINT"Bryan D. Catley" 
LOCATE 21,14:PRIHT"2221 Glasgow Road Alexandria -; 
PRINT'Virginia 22307-1819" 
PALETTE 0,0,0, 0: PALETTE 1, . 75, , 75, .75 
PALETTE 2,1,0,1:PALETTE 3,1,, 8,0 
RETURN 

SUB GetData (Texts, DataTypeS, maxlenH STATIC 

SHARED TypeFlagS, IPcursoriO 

WHILE INKEYSO-":MF.ND 

Start-POS (0| :Cur-0 :xpix-(Start-l) *8:yplx-(CSRLIN-l) "8 

ShoText: 

IF LEN(TextS)-0 THEN TypeFlagS-"N" 

n-naxlen4+l-LEN (TextS) : IF n<0 THEN n-0 

PRINT Text$+SPACES(n! .- : LOCATE .Start 

xpix-(Start+Cur-ll ■e:PUT(xpix,ypix),IPcursor% 

NxtChar: 

xS-"":LeftPartS-"":RlghtPartS-"" 

WHILE xS-"":x5-INKEyS:WEND 

IF xS-CHR$(30) THEN CurRight 

THEN CurLeft 
THEN Del Lett 

THEN DolRight 

THEN CirText 

THEN CetDone 
IF Data Types-" CHAR- AND TypeFlagSO"C" THEN 

IF (XSCCHRS(4B) OR X$>CHR$(57M AND (XS<>".") THEN 
IF LEN (TextS) >0 OR xS<>"-" THEN TypeFlagS-'C" 

END IF 
ELSEIF DataTypeS-'INT" THEN 

IF XS<CHRS(4B) OR XS>CHRS(57) THEN 
BEEPrGOTO NxtChar 

END IF 
END IF 
Insert Char: 

IF LEN(Text$)-maxleni THEN BEEP:GOTO NxtChar 
IF Cur>0 THEN LeftPartS-MIDS (Texts, 1, Cur) 

IF LEN(TextS)>0 THEN RightPart S-MIDS (Texts, Curt 1, LENITextS) - 
LEN(LertPartS)) 

TextS-LeftPartS+xS«RightPartS:Cur-Cur+l : GOTO ShoText 
CurRight : 

IF Cur-LEN( Text?) THEN NxtChar 
Cur-Cur+1 :GOTO ShoText 
CurLeft: 

IF Cur-0 THEN NxtChar 
Cur-Cur- 1 : GOTO ShDText 
DelLeft: 

IF LEN(TextS)-0 OR Cur-0 THEN BEEP:GOTO NxtChar 
IF Cur>l THEN LeftPartS-MIDS (Texts, l,Cur-l) 

IF LEN(Text$)>Cur THEN RightPart5-MID$(TextS,Cur+l, LEN (TextS) -Cur) 
TextS-LeftPartS+RightPartS:Cur-Cur-l:GOTO ShoText 
DelRlght : 

IF LENITextS)-0 OR Cur-LENITextS] THEN 3EEP:G0TO NxtChar 
IF Cur>0 THEN LeftPartS-MLDS(TextS,l,Curl 

IF Cur+KLEN (TextS) THEN RightPartS-MIDS(TextS, Curt2, LEN (TextS)-Curtll 
TexcS-LeftPartS*Right Part S: GOTO ShoText 
CirText: 

PRINT SPACES (maxlen *♦ 1 )-■: LOCATE .Start 
Cur-0:TextS-"":GOTO ShoText 
Get Done: 

PUT(xpix,ypix), IPcursorl 
END SUB 



•AC- 



Amazing Computing V3.1 ©1988 



89 



Roomers 



by The Bandito 



An 80386 based BridgeBoard for the Amiga 2000??? 



The new "newfs" file system for 
Amiga hard disks is still in beta 
testing. Testing has shown that some 
Amiga programs circumvent the 
AmigaDOS file structure and functions 
to gain speed. These programs are 
incompatible with the faster file 
system. There are several commercial 
programs that do not work with the 
new software. The new software will 
reportedly need a new Kickstart and 
Workbench. It will be able to boot 
from any arbitrary device on the 
system, such as a hard disk or net- 
work connection. 

Commodore is semi-offieially working 
on version 1.3 of AmigaDOS. Techni- 
cians and programmers have been 
visiting the computer networks, asking 
"techies" for their suggestions for 
improving the operating system. The 
new software would need to be 
burned into ROMs for all existing 
Amiga 500 and 2000 owners, which 
means a trip to the local service center 
for a chip upgrade to run new 
software that might require the new 
DOS. Chances are that most software 
will continue to adhere to the 1.2 
standard, given the great number of 
machines out there with that version 
of the operating system. 

Rumors say the new "fatter Agnes" 
graphics chip that addresses one 
megabyte of CHIP memory has the 
ability to address two megabytes, too. 
No current Amiga design can handle 
it, though. The decision to address 
one meg or two is a "bond-out" option 
on the chip, meaning the choice 



between one and two meg is made at 
the time when the silicon chip is 
placed in the ceramic chip package. 
The two meg design can't run in 
today's machines without a significant 
board design change. 

This "bond-out" option also means 
Commodore can gear up for a new 
architecture on a moment's notice. 
Word has it that the Amiga 3000 
design will have yet another bus 
design, but some slots would be 
backwards compatible to the current 
Zorro II design. 

Rumor has it that Commodore is 
holding back on shipment of Amiga 
2000s because they want to ship a two 
megabyte memory card and a hard 
disk controller with every machine. 

Both the A2000 version of the Genlock 

peripheral and the A2000 composite 
adapter provide composite video. 
Commodore may never produce a 
separate composite adapter for the 500 
and 2000, but you can always buy a 
third party composite adapter, and get 
a genlock to boot. 

It turns out the coprocessor slot in the 
Amiga 2000 is actually compatible 
with original 86-pin spec expansion 
cards. The gender is wrong, but with 
an adapter, you can run one — and 
only one — old-style card in the 2000. 
You can't run any new Zorro style 
cards at the same time, however. 

The Software Distillery is porting 
NetHack 2.x to the Amiga. NetHack 
is a multi-user game of Hack. They 
are also considering their own hard 



disk software to increase the speed of 
the AmigaDOS. They still have driver 
code left from their ill-fated hard disk 
commercial venture. 

At COMDEX, IBM showed OS/2 
running on a Model 80, but it was 
crashing a lot during the demonstra- 
tions. If you looked closely, the 
revision dates on the software revealed 
that it was last modified the day 
before! 

Recent talk says Commodore West 
Germany is working on a 80386 based 
BridgeBoard for the Amiga 2000. 
Rumors say it will be shown at a 
spring computer show. 

More indications that Ashton-Tate is 
developing programs for the Amiga 
come from spies on bulletin boards 
close to A-T's main offices. Employees 
have been visiting local Amiga BBSs, 
looking for technical tips. Chances are 
they are porting the dBase data base 
program to the Amiga. 

Rumors are flying that an Amiga 
hardware company is making a do-it- 
yourself Super Amiga with a 68020, a 
68881, and lots of memory and card 
slots. It is made from the company's 
motherboard and an Amiga 500. You 
disassemble the Amiga 500, remove 
the custom chips, and drop them into 
the new circuit board. Other hard- 
ware companies arc talking about 
expansion boxes for the Amiga 500, to 
turn it into a high-powered, 68020 
based workstation for universities and 
software companies. 

•AC- 



.90 



Amazing Computing V3.1 ©1988 



As I See It 



bv Eddie Churchill 



Another Software Generation is Born 



First, Some Current Events 

Well, the big move is over. Good-bye Charleston, hello 
Dallas. And with the new job and new home came some 
new equipment. Ole Faithful has been given an infusion of 
new life through a 2 meg Alegra board and a Phoenix hard 
drive. I also have a A2000 with 3 meg of memory and a 20 
meg hard drive. I will reports on how they all work, as I 
use and abuse them. Meanwhile, now that I've brought you 
up to date, let's move on to more important issues. 



East is East, West is West, 

and Now the Twain Shall Meet! 

Not very long ago, the only programs which worked 
together were written by the same company. New compa- 
nies soon sprang up, making their livings by selling add-on 
programs which worked with other, "big ticket" programs. 
The demand for these types of programs grew into an entire 
market. 

As both computers and users have grown more sophisti- 
cated, the desire to share "resources" has also grown. 
Nobody wants to re-invent the wheel. Once you are 
accustomed to a nifty feature, you sure hate to give it up. 
At the very end of this historical jaunt comes the Amiga 
with its multi-tasking operating system, making it absolutely 
necessary for programs to live together in peace. Peaceful 
co-existence does not mean file compatibility, though. IFF 
was supposed to provide that peace. 

The problem was that when the IFF standard was decided 
upon, no one thought about animation. So, when desktop 
video emerged as the Amiga's strong suit, it caught IFF 
people off-guard. When a standard finally arose from all 
the confusion, several very good programs were left out in 
the cold. 

Products are now appearing to solve this situation. Like the 
add-ons of old, products like Interchange can rectify some 
incompatibilities of older, still useful programs. Of course, 
programs that read other formats besides their own should 
always be encouraged. City Desk's inclusion of WordPerfect 
format is an example. Let's give a hearty "Well done!" to 
the good folks at Sunrize. 



Don't rest on your laurels yet, gang. I'm still disappointed 
when features are only partially implemented. City Desk 
only understands the attribute and justification information 
from within a WordPerfect file. No tabs! No columns! 
Sigh. Sunrize isn't the only programming house to go only 
part of the way, however. How many desktop publishing 
packages or word processors which allow the inclusion of 
graphics also allow HAM? Aren't HAM pictures graphics? 
Sure, it would mean more work, but still... 

Anyway, I know an upgrade of City Desk is going to allow 
importation of more info from the WordPerfect file, and the 
battle for the desktop publishing buck is just beginning to 
heat up. Look for some spiffy features in new packages in 
the near future. Isn't competition great? 



Another Software Generation is Born! 

First, there were Deluxe Paint and Images. (I suppose I have 
to include Graphicraft in here, but since it was still-born, 1 
won't mention it again.) These first generation painting 
programs were, by today's standards, pretty crude. No 
dithering, no perspective, and no worky-worky with extra 
memory. It wasn't very long before the second generation 
appeared to make our lives easier. Once again, healthy 
competition gave us more features and better user-interfaces. 
Deluxe Paint II, Digi-Paint (filling in the gaps in DP1I), and 
Prism all pushed the Amiga a little harder, while allowing 
us to do more than ever. 

The third generation of paint programs has now arrived. 
Photon Paint, HAM's answer to Deluxe Paint II, arrived at 
work for me to beta-test. By the time you read this bit of 
wisdom, Photon Paint probably will be all the rage, and 
everything I say will be old hat. I'm going to put in my 
two cents' worth anyway. I think it's awesome — as evolu- 
tionary a paint program as Faery Tale Adventure was a 
game. Microlllusions does it again! Its HAM features 
include texture mopping on any surface, some real spiffy 
brush manipulation (like twisting), and a simple to use 
perspective which makes DPII archaic! Photon Paint is truly 
the next generation. The rest of the graphic houses have to 
get really busy to catch up to Photon Paint. 

(continued) 



Amazing Computing 1/3.1 ©1988 



91 




-We specializG in AMIGA and C64/128!" 

Now In Stock! 

Insider 1-meg board • w/ Clock-Calendar 

Call For Our Low Pricing! 

New & Expanded 



SOFTWARE 

3670 Delaware Ave. 
Kenmore, N.Y. 14217 






SUPERMARKET 

(716)873-5321 



Rumor has it that EA is already taking steps to do just that, 
by acquiring D'Buddy. D'Buddy has evolved quite a bit 
from the days when it was just going to be a Gizmoz for 
graphic work. Now John Botteri at Digital Creations tells 
mc it's a full HAM painting program in its own right. His 
description sounded really great, but no working copy has 
arrived for evaluation. Maybe EA can sec into the future. 
(Remember when they claimed to "have vision?") Could 
D'Buddy become DPIII? Only time will tell. 



Viruses and other Pestilence 

The favorite topic on many bulletin boards nowadays is 
viruses. Many programs supposedly have viruses 
(especially if they are from Europe). We used to say 
software was "buggy," Now we say it has a virus, I guess 
next year programs will have bacteria... 

I understand there really are some problems along these 
lines, but a lot of the talk sounds bogus to me, I think the 
computer industry as a whole has a tendency to give too 
much credence to fables. Look how we react when software 
turns out to be "vaporware." From what I can tell, the only 
real pests in the software industry arc those who have 
software they didn't buy. They deserve whatever they get. 



And Speaking of Europe... 

How about those European arcade games? Some of them 
look familiar, don't they? Talk about look and feel! 
Garrison ought to be called Gauntlet II. If Amegas isn't an 
Arkanoid clone, I don't know what is. I'm all for competi- 
tion and free enterprise, but how about some originality in 
arcade games? Why is everybody copying everybody else, 
so we get three versions of the same game? There are many 
arcade games that haven't been made for the Amiga yet, 
gang. If you need a memory jog, here are a few titles I'd 
like to sec brought over: 

Venture — Let's try some simple arcade games. Most games 
today arc just too hard! 

M.U.L.E. — I will never forgive EA for not bringing this out 
on the Amiga. Come on, Europeans! 

Impossible Mission — If the C-64 can have it, why can't the 
Amiga? 

Boulder Dash — Where is Emerald Mines, anyway? 

/, Robot — Hey, it was done on an Amiga first anyway. How 
tough can it be? So what if Atari has the rights. Clones arc 
in style, right? 

Arcade Classics — How about three to a set? Volume 1 could 
be PacMan, Donkey Kong, and Dig Dug. Volume 2 could 
be Defender, Corf, and Bcrzcrk. 

Wizardry — If Infocom can put all three Zorks on a disk, Sir- 
Tech can get at least two. If they won't, which is likely, 
vector-drawn dungeons aren't copyrighted, you know. 

See how easy? All it takes is a little imagination and a good 
memory. 



The Mandatory Disclaimer 

Well, time for me to scroll out of here. The preceding 
comments are products of my own fertile imagination. My 
new employer has nothing to do with this column. Neither 
do my friends (both of them), acquaintances, or colleagues. 
If your own thoughts are along these same lines, then you 
are as vector-oriented as I am. 



•AC- 



92 



Amazing Computing V3.1 ©1988 



68000 Assembler Language Programming 



on the Amiga 1 



M 



Create a graphic image with the basic, [ 
low-level graphics routines in the ROM Kernel 

by Chris Martin 



Last time, we discussed the various structures used with the 
Amiga graphics routines in the ROM Kernel. This month I 
would like to present an assembly program that creates a 
multi-colored screen without using the Intuition routines. 
Remember, you can create a graphic image with the basic, 
low-level graphics routines in the ROM Kernel. Those 
routines are divided into two categories: display routines 
and drawing routines. An explanation of the order in which 
display routines must be called is essential. 



Display Routines 

Notice the space allocated for the structures at the end of 
the program. Certain structure elements use bytes, some 
use words, and others use long words of storage. For each 
element, I defined the necessary space to correctly align the 
structure's elements in memory. Each structure's name is 
listed as a label. The memory address of this label is 
necessary when you use any structure with the system 
routines. Each following element must be properly sized, 
since the system routines look for the value of each element 
in an offset from the address of the structure's start address. 
Certain elements of each structure have labels attached to 
make data storage into each element an easy task. Space is 
allocated using the syntax: 

<label> ds.<size .1 ,w ,b> < # of longs, words, or bytes > 



Now, the pointer is stored in the section of the bitmap 
structure labeled "plane<n>" (<n> is a number from 1 to 8, 
representative of the bitplanc number). Next, the structures 
are initialized. The default values of each clement arc 
stored in their memory spaces. At any time, we can change 
the values of each element, simply by storing a value in a 
data register, and then storing the data register in the 
address of that element's label. For example, to store a 3 in 
the bitmap clement defining depth, do the following: 

move.b #3,d0 
move.b dO.bmdepth 

"bmdepth" is the label of that element. The following are 
the routines called for initializing the structures, in the order 
they are called: 

InltViewO for initializing the View structure. 

InitVPortO for initializing the ViewPort structure. 

InilBltMapO for initializing the BitMap structure, 

InitRastPortO for initializing the RasfPort structure. 

When structures are given space in memory, that space is 
sometimes filled with garbage. When a structure is initial- 
ized, it is filled with default data valid to a system routine 
which uses the structure. The above routines simply 
initialize structures, but without them, the program would 
crash. 



After space has been allocated for each structure, display 
routines must be called to create and display the structures' 
definitions. Examine the section of the program labeled 
"createscreen:." This section actually calls the display 
routines to create the display. (See Figure 1.) First, 
"createscreen" allocates memory for use by the bitplanes. 
Each is 320 bits wide by 200 bits tall (full-screen). 

Next, the system routine AllocRaster is called, since the 
memory allocated must be in the first 512K of memory 
(CHIP memory). The Amiga's custom chips can only use 
memory in the first 512K. AllocRaster is called three times, 
once for each bitplanc used by the bitmap. The pointer to 
the start-address of each bitplanc is returned by AllocRaster 
in the DO register. 



The Copper 

Before I discuss the routines which actually show the 
display, an explanation of the Copper is necessary. Copper 
stands for Coprocessor. It is a helper chip to one of the 
Amiga's custom chips called the Blitter. The Copper handles 
display, while the Blitter controls drawing and areafilling. 
The Copper is a computer in itself; it has its own instruction 
set, and it is constantly executing small programs in the 
Amiga's memory. To control the display, the Copper looks 
to a "list" of its instructions and executes them one at a 
time. The Copper instruction set manipulates the display 
based on "raster interrupts." 



(continued) 



Amazing Computing V3.1 ©1988 



93 



AC/FORTRAN™ 



Mainframe quality, full feature ANSI FORTRAN 77 

compiler includes: Debugger, Linker, Library Manager, 
Runtime Library, IEEE math, and C interface. Supports 
Complex numbers, Virtual arrays, Overlays and Linking. 
Not copy protected. $295. 
Version for CSA 68020/68881 Turbo board also available $495. 



AC/BASIC 



From the authors of Microsoft BASIC compiler for 
Macintosh, comes AC/BASIC for the Amiga. 
Compatable with the Amiga BASIC interpreter: has 
more features and includes BLOCK IF, CASE 
statement, and STATIC keyword extensions and 
executes up to 50x faster. AC/BASIC is the new BASIC 
reference for MC68000 based personal computers. Not 
copyprotected. S195. 



OlU. 1. 



Telephone orders welcome 



Scientific 'Engineering Software 

2781 Bond Street, Auburn Hills, MI 48057/(313) 853-0050 

Amiga Iradonwk of Commodore .Amiga. Microsoft trademark of Microsoft Corp. 



Remember, a raster display is created by an electron gun 
inside the monitor which the display's highlights dots 
(pixels) one row at a time. The gun moves down each row 
fast enough to draw the entire display in l/60th of a 
second. In a raster interrupt, the computer says, "Wake me 
up when we get to row XXX." When the monitor has 
drawn row XXX, the computer is "interrupted," and a 
routine to manipulate the screen is called. When this 
routine finishes, the computer returns to its normal func- 
tions. The Copper instruction set is nothing compared to 
the 68000, but it is important and powerful, nonetheless. 
Here are the instructions: 



• WAIT Wait for the raster beam to reach a specific screen 

position. 

• MOVE Move data into on© of the custom chip registers. 

• SKIP Skip to the next instruction If the raster beam has 

already reached a specific screen position. 



When defining a screen and calling the routines to display 
it, the Amiga creates a Copper program for you — how nice! 



Creating the Display 

Finally, the routines that actually create the display are 
called in the following order: 

MakeVPortO Sets-up the VlewPort structure for display. 
MrgCopO Merges the new display specs with the 

existing display. 
LoadViewO Shows the display. 

MakeVPort creates a Copper program based on your screen 
characteristics. If you have three ViewPorts (See Figure 2.), 
each with a different color set or resolution, a Copper 
program is created to interrupt the Amiga when it must 
change the color set or modify the resolution. MrgCop 
works in conjunction with MakeVPort. It takes the Copper 
program created by MakeVPort and merges it with the 
existing Copper program. Finally, LoadView ties everything 
together and instructs the Copper to begin execution of the 
new Copper list. 



Drawing Routines 

All drawing routines use a very important structure called 
RastPort. The RastPort structure is directly tied to the 
bitmap, since all writing to the display is done into the 
bitmap. Here is the RastPort structure: 



Explanation 

Pointer to first layer 
"■ Pointer to BitMap structure "" 
Pointer to areafllling pattern 
Pointer to temporary space 
Information for areafllling 
Graphics ELementS (animation) 
Graphics bit masking 
Foreground pen # 
Background pen # 
Pen # for outlining areafills 
Drawing mode 
Areafllling pattern size 
??? who knows ??? 
# of bytes used for line pattern 
Flags for the RastPort 
Pointer to line pattern 
Current pen position x 
Current pen position y 
Special bit-plane manipulation 
Pen width 
Pen height 

Font used currently in the RastPort 
Algorithmic style (bold, italic) 
Text flags 
Text height 
Text width 

Text baseline definition 
Special Text spacing 
Current RastPort user 
reserved space (system use) 



Structure 


RastPort 


Include 


: ile: Graphic; 


Size 


Components 


LONG 


rp_Layer 


LONG 


rp_BitMap 


LONG 


rp AreaPtrn 


LONG 


rp_TmpRas 


LONG 


rp Arealnfo 


LONG 


rp_Gelslnfo 


BYTE 


rp_Mask 


BYTE 


rp_FgPen 


BYTE 


rp„BgPen 


BYTE 


rp AOLPen 


BYTE 


rp DrawMode 


BYTE 


rp AreaPtSz 


BYTE 


rp_Dummy 


BYTE 


rp_Linepatcnt 


WORD 


rp„Flags 


WORD 


rp„LinePtrn 


WORD 


rp_cp_x 


WORD 


'P_cp_y 


8 LONG 


rp mlnterms 


WORD 


rp_PenWidth 


WORD 


rp_PenHeight 


LONG 


rp_Font 


BYTE 


rp_AlgoStyle 


BYTE 


rpJxFlags 


WORD 


rp_TxH eight 


WORD 


rpJxWIdth 


WORD 


rp TxBaseline 


WORD 


rpJxSpacing 


WORD 


rp RP User 


14 LONG 


rp_wordreserved 


8 LONG 


rpjongreserved 


8 LONG 


rp_reserved 



94 



Amazing Computing V3.1 ©1988 



All we really need to define is the pointer to the bitmap; the 
rest is defined by system routines. 

Drawing routines called by this program are as follows: 

MoveO Move the pen to a coordinate in 

the bit-map 

DrawO Draw to a coordinate in the bit-map 

ReclFillO Draw a filled rectangle 

SetAPenO Set the current pen color 

SetRastO Fill the entire bit-map with a color 

SelDrMdO Set the drawing mode 

The drawing routines, as you will notice, are called in the 
same manner as the display routines. First, you must place 
the address of the Graphics Library ("graphicsbase") in the 
address register A6. The parameters are then passed 
through other address or data registers. For example, to set 
the bit-map to color #1, use the following syntax: 

move.l graphicsbase.a6 

lea.l rastport.al • Vastport" Is the label of the structure 
move.b #l,dl * pen number 1 

SYS SetRast(a6) • "SYS' Is macro to call a sys routine 



A list of all routines (drawing and display) is in the ROM 
Kernel Manual: Libraries and Devices, available through 
Addison-Wesley. This manual provides a thorough explana- 
tion of all routines and their usage in C and assembley. 

Next month, I'll discuss variations in on-screen display. I'll 
also introduce smooth scrolling and begin a discussion on 
dual-playfields. I Part II of ASSEMGR.ASM will appear next 
month - Ed ] 



Listing One 



ASSEMGR.ASM Part I 

Assembly program to create a tnultl-color, non-intuition 
display. 

By Chris Martin, for Amazing Computing 

Compile with the following commands: 

1> assen assemgr.asm -o assemgr.o -c w4QQQ0 

1> alink assemgr.o to asserogr library ax.iga.lib 



* INCLUDE files 






INCLUDE 


"exec/ types. 1" 




INCLUDE 


"exec/ funcdef . i" 




INCLUDE 


"graphics/gfx.i" 




INCLUDE 


"gra phi cs /view, i" 




INCLUDE 


"graphics /rastport . i" 


• Macros 






EXT sys 


MACRO 






XREF 


LVOU 




ENDM 




SYS 


MACRO 






JSR 


LVO\l 




F.SDM 





For 

More "Byte" 
For Your Dollar? 



— 






^^^mm*^^mx*wr^M 






,'Ajaai 


■5 


, r^i 


^^^MHMHM 




i 



- .— . J »-.'vi ->'«• .■ t'r'i-i'-i-w -. 

/ . . . . . . .V\ "? 



Here is the answer, the model PPI-1000 
Expansion Unit for your Amiga 1000 by 
Palomar Peripherals. 

□ Full auto configuration 

□ Meets Zorro specifications 

□ Amiga buss pass-thru 

□ Built in power supply 

□ Power on/off controlled by Amiga 
D Real time clock with battery backup 

□ Fast RAM 

-2,4,6 or 8 megabytes 
-No wait states 

□ Disk drives 
-Supports up to 2 drives 

-20 or 40 megabyte hard drive(s) 

-3'/2" or 5'/4" floppy drive 

-Fast DMA interface 
With 20 meg hard drive and 2 meg RAM 
price is $1395 plus shipping and handling 
(Calif. Res. add 6% sales tax). Requires 
Amiga DOS 1.2. For further information 
call (619) 248-1202 or write to Palomar 
Peripherals. 



PALOMAR PERIPHERALS 

14580 High Pine 
Poway,Ca 92064 



(continued) 



Amazing Computing V3.1 ©1988 



95 



Here, I list the routines that this program calls . 

EXT_5¥s OpenLlbrary * ( library name, version) [Al, DO) 

BKTSta Hove * (rastport, x, y) (Al, DO, Dl ) 

EXTJ5Y5 Draw * (rastport, x, y) (Al, DO, Dl ) 

EXT_SYS SetAPen " ( rastport, color* ) (A1,P0) 

EXT_5YS SetDrMd * ( rastport, drawmcde) |A1,D0) 

£XT_5Y5 5etRCB4 * (viewport, color#, r,g,b) 

• (A0,D0,Dl,D2,D3) 
" < rastport, color*) (A1,D0) 

• (view) |A1) 
• (viewport) (AO) 
■ (bitmap, depth, wi dth , height ) 

• IA0,D0,D1,D2) 
EX7_SYS InitRastport ■ {rastport) <A1» 
EXt_SYS AllocRaster ■ [width, height | (D0,D1) 
EXT_SYS MakeVPort * (view, viewport) (A0,A1) 
EXT_SYS MrgCop * (view) (Al] 
EXT_SYS LoadView * (view) (Al) 
ExT_SY5 RectFill * (rastport, xl, yl, X2,y2) 

• (A1,D0,D1,D2,E3) 



EX7_5YS SetRast 

EXT_SYS InitView 

EXT_SYS InitVPort 

EXT_SYS InitBitHap 



External References 



AbsExecUase 



The Base of the Exec Library 



Start of the program 



IBQVe.l 3p,:-Vv.:; 

jsr openllbraries 

jsr createscreen 
jsr setcolars 

jsr drawHomething 

■ this is an infinite loop 

infinite: 



jmp 



infinite 



* save the current stack pointer 
jump and return from ^openllbraries' 

* create the display 

* set the colors for the display 
* draw some boxes, lines 



* isn't that original? 



Open Libraries 



openllbraries: 

• Graphics Library 

move.l _AbsExec3ase^a6 

lea.l graphics,*! 

moveq #Q,d0 

SYS CpenLibrary(a6} 

move . 1 dO, graphlcsbase 

rts 



get base address of graphics lib 
* return 



Create the screen 



createscreen: 

• allocate memory for the 3 bitmap planes 

move. 1 graphlcsbase, a6 

awve.w #320, dQ 

move.w #200, dl 

SYS AllocRaster (a6) 

move.l do, planel 



move.l 


graphlcsbase, a 6 


move. w 


♦320, dO 


move . w 


♦200, dl 


SYS 


AllOCRaster (a6) 


rove . 1 


d0 f plane2 


move. 1 


graphlcsbase, a6 


uove . w 


#32G,dO 


move . w 


#200, dl 


SYS 


AllocHaster(a6) 


move . 1 


dQ , plane3 


move, 1 


graphlcsbase, a6 


lea.l 


view, a 1 


SYS 


Inltvlew(a6) 



* get address of the View 
Initialize the view 



lea.l 


viewport, aO 






move . 1 


aQ,view * 


X) 


nter to first viewport in linked list 


jBove- 1 


graphlcsbase, a6 






lea.l 


viewport, al 




■ get address of the viewport 


SYS 


InitVPort <a6) 




■ Initialise the viewport 


lea.l 


ra3info,a0 






move. 1 


a0,vprasinfo 




■ pointer to rasinfo structure 


InaVe.W 


#320, dQ 




* viewport width 


move.w 


dO, vpwidth 






raoveq 


#C,dO 




• clear dO 


move.* 


#200, dO 




• viewport height 


move . w 


dO, vpheight 






moveq 


*0,d0 * viewport modes 1 D for 320x200 graphics J 


move.w 


dO, vpnadoa 






move. 1 


graphlcsbase, a6 






lea.l 


bitmap, aO 






rove. b 


#3,d0 






move.w 


#320, dl 






move.w 


1200,42 






SYS 


InitBitMap (a6) 




■ Initial Ite the BitMap 


lea.l 


bitmap, aO 






move. 1 


aO, ribitmap 






move. 1 


graphlcsbase, a6 






lea.l 


view, aO 




• View structure in aQ 


lea.l 


viewport, al 




■ viewport structure in al 


SYS 


MakeVFortUG) 




" call the Makevport routine 


move.l 


graphlcsbase, a 6 






lea.l 


view, a 1 




' view structure in al 


SYS 


MrgCop(a6) 


* 


merge new coproc list with the old 


move. 1 


graphlcsbase, a 6 






lea.l 


view, al 




' View structure in al 


SYS 


LoadView(a6) 




• now show the display 


lea.l 


bitmap, aO 






move. 1 


aO, ribltnap 






move, 1 


graphlcsbase, a6 






lea 


rastport, al 






SYS 


InitRaatPortd 


6) 


* initialize the rastport structure 


lea.l 


bitmap, aO 






move , 1 


aQ, rpbitmap 







Set the colors 



1 NOTE 

We are only going to> set 4 color regs {for space purposes) 
you can cont setting the other 4 (8 in all) if you wish to 
use them. 



# 0, set to R-0, C-0, B-Q (black) 



tcolors; 






move . 1 


graphlcsbase 


•fi 


lea.l 


viewport, aO 




move.l 


#0 r d0 * 


color 


move . 1 


#0,dl 




move. 1 


#0,d2 




move.l 


#0,d3 




SYS 


SetftGB4 Ia6) 




move, 1 


graphlcsbase 


a6 


lea.l 


viewport, a 




move . 1 


#l,d0 


* color 


move.l 


*4,dl 




mave.l 


#10, d2 




move.l 


#15,d3 




SYS 


SetAGB4(a6) 




move.l 


graphlcsbase 


tfi 


lea.l 


viewport, aO 




move . 1 


#2,d0 


■ color 


move. 1 


* : s , d : 




move. 1 


#Q,d2 




move, 1 


*5,d3 




SYS 


5etRG34 (a 6) 




move.l 


graphlcsbase, 


ati 


lea.l 


viewport, aO 





set to R-4, G-10, B-1S 



* 2, 



set to R-15, G-0, B-5 



•AC- 



96 



Amazing Computing V3.1 ©1988 



Hilton Android's 

ROBOT READERS 



By Don Hicks 

In today's fast and hurried world, it is 
possible to forget the needs of young 
readers. It is often easy to replace the 
reading experience of parent and child 
with a complacent attachment to 
television. For years, we have been 
told the computer would herald a new 
approach to an old problem, the one- 
on-one needs of a new reader. Hilton 
Android has given the Amiga commu- 
nity several short, interesting compu- 
terized stories just to help new 
readers. 

Robot Readers currently consists of 
four titles with a fifth due soon: 
Chicken Little, Three Little Pigs, 
Aesop's Fables, Little Red Hen, and 
soon. The Ugly Duckling. Each title 
comes on a single, brightly colored 
disk with an extremely short two page 
instruction book. The entire emphasis 
of Robot Readers is keeping the 
program simple. A small child could 
be left alone with the Amiga (all 
varieties) and be able to play and 
learn on his own. 

The disk is input at the Workbench 
prompt and then takes over the 
machine. (Obviously multi-tasking 
was not a consideration for young 
readers.) The young reader is pre- 
sented with a title screen and menu 
bar. This menu bar appears on every 
screen throughout the session, and is 
the only means of controlling the 
program. By utilizing this simple 
menu structure, robot readers is 
interfaced entirely with the mouse. 
The young reader docs not need to 
type or search the keyboard in any 
way. 



The menu consits of: 

G READ F S PAGE 

"G" stands for game. Positioning the 
arrow cursor over the G, then pressing 
cither mouse button, places the 
program in a game mode for the 
current page. The game consists of 
finding the word requested by the 
computer, "Find the word...." The 
young reader positions the pointer 
over the correct word and presses 
either mouse button. 

If the correct word is found, the word 
is highlighted by a second primary 
color, recited by the computer, 
changed to a third color, and a new 
word is requested by the computer. 
As each new word is requested and 
found without mistakes, it turns to the 
third color. This process continues 
until the entire page of text is the new 
color. The page flashes once, then 
stops. The reader is now able to 
continue. 

If the reader does not hear the word 
correctly before pressing an incorrect 
word, he can repress the "G," and the 
word will be repeated. If he presses 
an incorrect word at any time in the 
game, the word is highlighted, spoken, 
and the game stops. The player must 
repress the "G" to begin again. 

When pressed, "RE AD," reads the page 
in standard Amiga phonetics. There 
has been no attempt to create digitized 
sounds or voices for the series. 
Certain voices are created for charac- 
ters by altering the Amiga voice in 
pitch, in the same manner used in 
"speech toy." 




"**j* 







mm 




Amazing Computing V3.1 ©1988 



97 




Gobble sobble. Cockle doodle do. 
Quack quack. Cluok^luek. Cheep cheep . " 



"F" is selected to increase the reading 
speed of the computer. With each 
press of the mouse button, the reading 
speed is increased by 25 to 50 words 
per minute. The highest speed level of 
speech is a screeching 400 words per 
minute. The child would no longer 
require these aids at that speed. 

"S" is selected to slow the reading 
speed of the computer by 10 to 50 
words per minute. At the slowest 
speed, 40 words per minute, the new 
reader has ample time to sec and hear 
each word as it is read. The slow and 
plodding sound soon gets on the 
nerves of older readers and is a sure 
way to get a set of headphones for the 
Amiga. 

"PACE" advances you to the next 
page. Unfortunately, there is no way 
to move back either single or multiple 
pages. However, the entire program is 
a continuous loop and consistent 
pressing of the mouse on the "READ" 
prompt places the reader on any page 
he wants. 

Not listed in a menu, but addressed in 
the instructions, is the ability to select 
individual words on a page and 
request the computer to "sound them 
out." By placing the cursor over a 
single word and pressing once, the 
computer highlights and reads the 
single word. By selecting the same 
word again, the computer highlights 
the word, reads it by syllables (some- 
times its own variety of syllables), then 
reads it by the individual letters or 



groups of letters that produce the indi- 
vidual sounds. Finally, the computer 
reads the entire word very slowly, 
This is designed to build a better 
understanding of the group of letters 
that produce a particular sound in a 
particular word. 

Possibly the most immediately appeal- 
ing portion of the program is the 
graphics. Each page quickly appears 
on the screen with its text. The pages 
are not unlike the small readers most 
of today's computcrists read as 
children. Bright colors and uncompli- 
cated drawings set the stage for each 
page of text. 

Drawbacks 

Since the standard Amiga speech 
interface was used for convenience, 
some faults occur in the reading 
portion and the syllable portion of the 
program. Certain words, such as 
"animals" and "tell," sound funny and 
stilted. Other words, such as "sum- 
mer," develop new, interesting syllable 
structures. Also, digitized sounds and 
voices would have added a great deal 
of life to the material. 

Some of the vocabulary words are 
above a beginning reader's comprehen- 
sion level. However, great care has 
been taken to allow the reader to 
select the individual words and 
understand their meanings through the 
context of the sentence. 



Strong Points 

The program is easy to use and is 
clearly written for a young person to 
use unattended. The brightly colored 
illustrations, simple mouse interface, 
endless loop program construction, 
and simple games allow a young 
reader to progress at his own pace and 
still remain interested in the story. 

A Personal Bias 

This program is quick and simple and 
gives the new reader some support. 
However, it should only be used to 
augment and reinforce a young 
reader's learning. The gift of reading 
is a personal value, passed from 
parent to child. Through reading, we 
share the joys and understandings 
which cross generations and time. 
There will never be a substitute for the 
time spent with a child learning a 
story that is old for you and new for 
him. While we teach them the basics 
of a new talent, they show us a new 
and remembered view of the world. 

Hilton Android has done an admirable 
job of producing a vehicle for self- 
learning and reading practice. Yet, an 
adult is still required to add the depth 
and questioning neccessary to broaden 
the understanding of the reader. As 
an example, Chicken Little tells a great 
story, however, the moral is not 
available in the text, only through the 
questioning of the reader. Hilton 
Android can help with the mechanics, 
but a parent is still neccessary for the 
magic. 



Robot Readers: S29.95 each 
Chicken Little 
Three Little Pigs 
Aesop's Fabels 

Little Red Hen 

and soon 

The Ugly Duckling 

Hilton Android 

P.O. Box 7437 

Huntington Beach, CA 92615-7437 

(714) 963-4584 



■AC* 



98 



Amazing Computing V3.1 ©7988 



by Steve Faiwiszewski 



Modula-2 Programming 



on the Amiga 



M2Amiga by Interface Technologies 



[Steve took a step back from CALC this month to give you 
a chance to input all the listings. Some of the listings were 
carried over to this issue, and the remaining ones will be 
listed next month. Steve will continue with CALC next 
month. - Ed] 

There is a new contender in the Amiga Modula-2 arena. 
The newcomer is M2Amiga, distributed in the United States 
by Interface Technologies Corporation of Houston. This 
compiler was developed in Switzerland by the people who 
worked with Niklaus Wirth at ETH Zurich; thus, it reflects 
philosophies newer than those present when the TDI and 
Benchmark compilers were developed. 



What You Get 

The package consists of one disk, a manual, and the book 
Modula-2: A Seafaring Guide and Shipyard Manual by Joyce. 
The disk contains a README file, an editor (based on 
Emacs), the compiler, the linker, a couple of utility pro- 
grams, some definition files, and some demo programs. 

One of the utilities (called DOME) sets up a working 
bootable disk that contains all the necessary executables. All 
you need is a blank formatted disk and a workbench disk. 
The workbench disk is necessary for copying all workbench 
related files, since the disk supplied does not have the 
workbench on it. This setup program is quite slow and 
causes the disk drive to grind a lot (It took over 10 minutes 
to run.), but very little manual intervention is required, so 
there's not much chance for an inexperienced user to mess 
things up. 



The Environment 

The second utility program, called M2Project, is an interest- 
ing one; it lets the programmer/user set up "projects." A 
project is a directory which contains at least two other 
subdirectories: one called SYM and the other called OBJ. 
The intention is that the user keeps all work related to a 
given program in such a project, and all the related symbol 
files (the result of compiling definition modules) are saved 
in the SYM directory, while all object files (the result of 
compiling implementation modules) are stored in the OBJ 
directory. 



Sometimes it is necessary to refer to symbol files which exist 
only in other projects. This is done using a file called 
M2Path, which contains the names of other projects to be 
searched for symbol files. Each project can have such a file, 
and there is a global one in the S: directory. The search 
proceeds as follows. The compiler first looks for a symbol 
file in the current project's SYM directory. If the symbol file 
isn't there, the compiler searches through all the projects 
listed in the current project's M2Path file. If the symbol file 
is still not found, the compiler searches through all the 
projects listed in the global M2Path file. 

This setup works nicely from the Workbench environment. 
The editor and compiler have attractive icons, and both the 
editor and the linker can generate icons for the files they 
produce. All you have to do to compile a program is click 
on the program's icon and then double-click on the 
compiler's icon while holding down the SHIFT key. The 
same process goes for linking. 

Because I'm an old fashioned kind of guy, I prefer using the 
compiler and linker from the CLI, which gives me greater 
control over the various options that can be set at invocation 
time. 



The Compiler 

The compiler is one-pass, which makes compilation quite 
fast, compared to multi-pass compilers. When invoked from 
the Workbench, the compiler opens its own output window 
in which it shows the progress of compilation. If the 
compiler is launched specifically to compile one file, then it 
exits when the compilation is finished. However, if the 
compiler is launched without specifying any files to compile, 
then the compiler prompts the user for the name of the 
input file, compiles it, and then prompts for input again. It 
will keep going through this cycle until a blank line is 
entered for the input file name. 

I came across an undocumented "feature" of the compiler: 
If the original CLI's window (the one in which LoadWB was 
executed) is still around when the compiler is invoked from 
the Workbench, then the compiler's output goes to the old 

(continued) 



Amazing Computing V3.1 ©1988 



99 



ft 




AMIGA DUAL 3 x / 2 
DISK DRIVES 



100% Compatible with 
Amiga 500, 1000 & 2000 Computers 

» Internal Power Supply 

» All Metal Chassis 

• Horizontal Layout 
» Vented Enclosure 

• On-Off Switch 
» 6 foot 3-prong linecord 
» Primary Circuit Breaker Protected 

■ Color Coordinated to Amiga Computers 

ONLY $395. 00 

20 Meg Hard Drive (SCSI) with Controller 

ONLY $785.00 

Over 400 PD Disks. Call for complete catalog 

Comp- US are 

1 1) Maple Avenue. Westbury, NY 1 1590 

In NY State (516) 997-6707 

Outside NY State (800) 356-9997 

'Meeting the Seeds of People in the Electronic Age' 



CLI window even though the compiler opened one itself. 
Attempting to close the compiler's window might crash the 
Amiga. 

Launched from the CLI, the compiler behaves in the same 
way as when it's launched from the Workbench, except it 
does not open its own window. Instead, it uses the CLl's 
window. One annoying feature is that, for some strange 
reason, the compiler changes the window's attribute from 
CON: to RAW:, which prevents the use of ConMan, a utility 
I've grown to depend on. The problem is exacerbated by 
the fact that, unlike the other Amiga Modula-2 compilers, 
this compiler requires the full name of the file to be entered. 
I have been informed that this "feature" (messing around 
with the window) will be fixed in the future. 

Another problem is that the compiler can be exited too 
easily; simply entering a blank line is enough to exit the 
compiler. Since the compiler is quite large and cannot be 
made resident, it must load from disk every time it runs. 
This is a lengthy and annoying process. Using FACC seems 
to help the load time a bit, but it would have been nice to 
make the compiler resident or make it more difficult to exit. 

There are some documented bugs and limitations, most of 
which I cither did not encounter, or didn't consider to be 
serious enough to mention. For example, the size of open 



array parameters must be some power of 2. This is quite 
bizarre, but it might be fixed in the next version. A more 
common limitation is the data size limit of 32K per module. 
Both the Benchmark compiler and the first release of the 
TDI package had this limitation. 



The Linker 

The linker's behavior, when executed from the Workbench 
or from CLI, parallels the compiler's. Here, too, the full file 
name must be entered. For example, if you want to link a 
program called foo, you must enter FOO.OBJ. I find this 
very silly, since the compiler always generates a object file 
with the .OBJ suffix; why couldn't the linker implicitly 
append a .OBJ to the supplied file name? 



The Manual 

The Modula-2 manual is about the size of the TDI manual. 
It has one chapter about the editor, one about the compiler 
and language implementation, one discussing the linker, and 
a section listing all the support definition modules. The 
documentation for the compiler and editor is barely 
adequate. Fortunately, the authors realized this and 
included a reasonably good book on the topic. However, 
there are plenty of implementation-specific items which 
should have been discussed much more thoroughly in the 
manual (the run-time support module, for example). 

The style of the definition module listings is atrocious! I 
cannot believe these were meant to be read. Conventional 
indentation is nonexistent and the text is cramped, with 
practically no white space at all. Reading this section is a 
miserable experience. The package I received contained no 
index or cross reference for the support modules. This is 
totally unacceptable; without such a cross reference, any 
serious programming will become tedious or even impos- 
sible, since the programmer must scan the support module 
listings manually for all Amiga-related variables and types. 
I have been promised that this will be rectified immediately, 
and that future M2Amiga packages will contain a cross 
reference. 



The Editor 

The editor is based on the Emacs, supplied by Commodore 
on one of its developer's disks. I feel that the authors 
would have done better to go with a variation of mg 
(formerly known as MicroGnuEmacs) instead. Mg is a more 
recent and advanced version of Emacs. The Benchmark 
package uses such an adaptation of mg to its advantage. 

M2Amiga's Emacs knows about compilation errors and can 
list them one at a time while placing the cursor on top of 
the offending code. This is the only Modula-2 related 



WO Amazing Computing V3.1 ©1988 



The All New SS-20 Fixed Drive System for Amiga 
500, 1000 and 2000 Computers 

The Model SS-20 is fully compatible with all three 
AMIGA Computers: Model 500, 1000, and 2000. It is a 
3.5 inch MiniScribe Winchester drive with SCSI 
interface housed in a small enclosure. The SS-20 comes 
complete and ready for use: no additional hardware or 
software is necessary for operation. The back of the SS- 
20 chassis is fitted with a SCSI port connector so that as 
many as six additional SCSI devices may be "daisy- 
chained" to the SS-20. The Amiga's parallel port 
provides the interface to the SS-20. An extension of the 
parallel port is brought out to the rear of the SS-20 
chassis for simultaneous use by other peripherals. 

NEW FAST VERSION 2.4 SOFTWARE DRIVER* 

The new SS-20 runs under Amiga Dos 1 .2 or later. Easy to use startup utility to install the drive as a 
DOS device. Diagnostic utilities Included to verify and test for correct operation of the unit. The 
driver installs during startup sequence of Workbench to appear as a drive icon. The new version 2.4 
Software is compatible with Amiga "Fast File System" and future releases. 

To place orders or request additional information contact: ^^^ 

Epic Sales Inc., Garland. Texas, (214) 272-5724 /^^^ 501 Business Parkway 

Intercomputing, Inc., Grand Prairie, Texas, (214) 988-3500 3E,'S'.' Richardson. TX 7508 1 

The software is licensed from Micro Bolics Inc. 

DEALER INQUIRIES INVITED 




SYSTEMS 

INC 



(214) 680-8394 



feature of this editor worth mentioning. It is certainly not 
as good as the Benchmark implementation, but it is superior 
to that supplied by TDI. 



tedious task of manually converting the case of all types and 
variables, besides having to find the correct module from 
which these identifiers are to be imported. 



Support Modules 

M2Amiga's authors took a completely different approach 
from the Benchmark and TDI implcmcntors. Instead of 
following the examples set by the C include files, 
M2Amiga's creators decided to merge most of the support 
stuff into a few larger modules. 

The naming convention for Identifier is also quite different: 
types and variables begin with a lower case, while proce- 
dures begin with upper case. So, for example, a field which 
is named TopEdge in both the TDI and Benchmark implem- 
entation would be named topEdge in M2Amiga. The 
authors claim this naming convention is used by Niklaus 
Wirth and other Modula-2 programmers in Europe, but I 
find it strange. 

This naming convention does not pose a serious problem if 
you are writing Modula-2 code for the first time. Of course, 
if you intend to port some code from one of the two other 
Amiga Modula-2 compilers, you will be faced with the 



Language Definition Issues 

The M2Amiga package differs from the other two Modula-2 
implementations on what might be called philosophical 
issues. I'll just mention one issue, which I think is a major 
departure from current Modula-2 thinking. Until now, 
Modula-2 supported the concept of "type transfer" as long 
as the types involved were of the same size (the equivalent 
to typecasting in C). For example, suppose you have the 
following code fragment: 

VAR b : BITSET: c : CARDINAL; r : REAL; 
b := BITSET{0); 
c := CARDINAL(b); 
WriteCard(c.l); 

In the above code, the value of b is placed into c without 
any conversion or processing. What actually gets printed, 
by the way, is "1" since bit was turned on. Doing 
something like r := REAL(c) is nonsensical, since REALs 
have a special format and, without conversion, the value in 

(continued) 



Amazing Computing V3.1 ©1988 



101 




Robot Readers 

a powerful new way for your 

child to learn to read 

Even if your child isn't a reader yet he can read these 
classic stories at his own speed through interactive 

speech, with little or no adult supervision. The 

beautiful illustrations and built-in word games hold 

the young reader's attention while promoting early 

reading skills, vocabulary, and word recognition. 

♦CHICKEN LITTLE *AESOFS FABLES 

♦LITTLE RED HEN ♦THREE LITTLE PIGS 

$29.95 each 

for the Amiga 512k 
Coming soon: ♦ THE UGLY DUCKLING 

HILTON ANDROID 
PO Box 7437 • Huntington Beach, CA 92615-7437 

(714) 963-4584 



c is meaningless as a REAL, in M2Amiga, however, r := 
REAL(c) does make sense, since the compiler will do the 
necessary conversion. As a matter of fact, there is no 
automatic type transfer anymore; instead, there's automatic 
type conversion. If type transfer is truly needed, a special 
procedure called Cast must be used. The above code will 
not compile under M2Amiga, but it works fine when done 
by the other two compilers. 

This type conversion feature is quite foreign to current 
Modula-2 programmers, and it will take a while to get used 
to. It is also bound to create problems for anyone attempt- 
ing to port code from other Modula-2 implementations. 



M2Amiga's Forte 

The M2Amiga package really shines in handling runtime 
exceptions and termination. The runtime support module 
lets a programmer designate a terminating procedure for 
each programmer-supplied module. The module initializa- 
tion feature has always been standard in Modula-2 imple- 
mentations, but a similar feature for terminating code has 
been sorely lacking. This new innovation is certainly 
welcome. Upon exiting, the runtime system calls all the 
programmer-designated terminating procedures, closes all 
opened libraries, releases the memory allocations, and closes 



all windows which were opened through its Windows 
module. This allows the user to release all allocated 
resources in an orderly fashion. 

If a runtime error is encountered, the runtime system 
displays a requester to notify the user of the error, and then 
attempts to shut down everything gracefully. The program- 
mer has the option of supplying a debug procedure which 
gets called when a runtime error occurs. This means it 
would be quite simple to incorporate a source level 
debugger and, as a matter of fact, I know that such a 
debugger is in the works. A source level debugger greatly 
eases debugging, thereby speeding development time. 



Comparison 

M2Amiga will compete against the Benchmark package. 
Both are one-pass compilers, and both use some version of 
Emacs as editor. They are also within the same price range 
(M2Amiga lists for about S250.). Execution time for the 
executables produced by the two compilers is pretty much 
the same, but the size of the M2Amiga generated executable 
is larger because its runtime module has more overhead to 
take care of. 

The M2Amiga compiler is slower than Benchmark, especially 
when importing certain large modules (such as Intuition), 
but it is still much faster than the TDI implementation. 
Look at the accompanying tables for some Benchmark 
results. 

Although M2Amiga's user interface is better than TDl's, I 
found it is much worse than the Benchmark implementation. 
Frankly, I've been spoiled by the well-integrated Benchmark 
environment, so anything else pales in comparison. 

The M2Amiga manual and support module listings are 
probably the worst of all the Modula-2 packages, but that 
should change in the future. 

Summary 

The Interface Technologies M2Amiga Modula-2 package is a 
viable alternative in the Amiga compiler field. Compared to 
the Benchmark package, M2Amiga has both strengths and 
weaknesses; individual programmers must decide which 
package best suits their needs. One factor to keep in mind 
is that Interface Technologies seems more stable than 
Benchmark's distributors; M2Amiga's future might therefore 
be more sound. 



M2Amlga Interface Technologies 

3336 Richmond, Suite 200 
Houston, TX 77098 
Tel: (713) 523-8422 



(continued on page 106) 



702 Amazing Computing V3.1 ©1988 



Expanding Reference 




Volume 1 Number 1 Premiere 1986 

BuptfSphifM By K«:y KfcftTtn AnA3aj.e Graces prog. 
Data virui ByJFouti AdMMM} araA f&ur Amkjil 
E2-Twm byK»iy KiuttmBi An ABueTomnni prog/im 
MgiUixik* by P K'W)I»m:i R*og'lTT"ng 1m* t ro-jo at 
InofdaCU bjrQ.MiMWigudcitni^lintorwAnitgaOM™ 
CLt&jmmiry byG tJt,tw ir AidsffXIcn-iTaxi 
AnijiForum byB. tu&kn UvtCompuHn*^ AffligiSIG 
Comiiorfafp*riigi|>»rtlop"nirtlPro5f*m tyD.Hcu, 
Am[gi Product A l*fing ot pmtf «J oipac-M p/odxtt 



BBB3K*w8BBE8EwHli B 

W Hmazlngkf 
" Computing A 




Volume 1 Number 2 March 1 966 

BiebwiJcArttCwnH Through AiwwwtfnVrttarTiEA 
hiidiCLI: part two G HAW toangiw* CU&ED 

A Son t »ry at ED Corrrndi 
Uvit byftrtUrvA mwcltvBttiwionrfbtivl 
Onlnt in d tni CTS Fabftt HH ADH IfedM by J. Fouit 
9Lp*rt«rfn V1J By K. Kluttrran A ten. p»og, in AfmgtBwc 
A WoAbMEh "Mora" Progrim by ft» W** 
AnljiBSS nur-btn 



nmazings 
Computing 




Volume 1 Numbers April 1986 

Amityji! i rawwfly ErrmtViWfloi 

Rnltwa oi Ricttif. Bin ticca i md Mndrtidoar 

FortMThB l'C tri ou' on-going bun* 

DoluiaDilwII ByRWrch An Am^a Bawc art ersgiuia 

AmLgi fulc. A beg nrwi £*)*■' 

*«daCU:p*nJ byO»vg«Mu« Goorgogvw ut PFE 







Volume 1 Number4 May 1986 

BkyFgj anr! Artfcfoi Rwlvwtd 

Build your own 5 WDrtw Connoetcr ByEmoftViwroi 

Amiga Bute Tlpt byRehWw 

Scrlnpw Pin »* by P. Kwlowtl prog lo prirl V-5* ten 

H'croMi CO RON Confvanc* by Jn Oftim 

Arrlji Bfl3 hu/r tori 




Volume 1 Numbers 19S6 

Tni ttS to RGB Convtrrion Tool 

by S. Pw»#u We? rrimpJBon in BASIC 
AnlciHowa by ftc* Ram Thow*!o(lJw Amgi munc column* 
9 dinar a Fin! Look by John Fault A I'll V4r r« hood* 
JoNi Foun Tihi wn R. J. Heal it .COMDEX™ 
How Soil 3dKU ilfact Orw T? inla t ir 

■n.nteTMwwJi Do^ai VV/^ti at $. .-n :« 
Tht CemmaJ wi Ltyafli by J. Fouit A 100* Cenwoooro "arti" 
Scrimp* Part TWO by Po/ry K . . v. a 
Iktmurfr rivtawad by ftca Wircfi 
MMtaf Toed by DhU K*7 



flmazir 
omput 



Volume 1 Number 6 1986 

Turpi* of ApthaJ Trlofegy rvtmmi by S w» r RdrowKi 
Tho rWkty PrsftetA Hilton In our Solar Syium 
■ffvwwC by Swprwn Pwtowa: 

PkwRffwMfd by Erv Boh 
TaitoafU Ru* i Flirt Look byJotLmwy 
How tt itm your own Ankji Ui w Group by 'iV a- Sfnoaan 
Arnlgi (Jaw Graupt 

MoHIng Llol by Kdfy Ki^rhnin i b*sc Hi Hitpogrim 
Polntir Inigi EeitM by Swptwi Rotcukkz 
Scrimpw: pirt B»H by Ptny KvoomH 
Fun With tii ImlgiQiliCofrtroltarbyThpm Stefng 
Cp:-i^» Yt^r A- 'jiBuitProc/ir'i foe Sowi by Pw?awcz 




Volume 1 Number 7 1986 

Alpli Driw:CADcomw*lnIh« Arrlji byKrih/Adomi 
TrySD byJ- Lteftaoiwfln^tMucsori !□ 30ya :res 
Atpii H igiw 1 Animiior: ■ "•>♦* by Erv Boso 
Dtfuit Vd*oCon«niedon9« rtwtwtdbyJotlAwory 
WndowrvouMkMi hAmJgi BuJc bySwwUcnal 
MOT tiyCt'<nFi*ncniWgricrct«4!or 
"1 C Whit I Think" Ron Rtteunwiti ■ *** Cgnphcpragi 
Your Itm Bil b|iBC*»y pop*?. AniQtBHlciainuH 
FFBruahtaAmlgiBiwc'BOB' Bbk Kklor by U Swngw 
Linking C Progrimi with AuwnW w Rcutnpi on tnt Amlgt 
by Gv rid Hj'I 




Volume 1 Number 81 986 

ThiUni'wBtyAiTlpi Br G G.i~; ;e 

K"^% m«Didi atWimngsn Sti* Unhoruy 
MeroCd t bok ■! t orw h in im-y tor tw A^ g ■ 
hkrv£d,ThaLawki mt Ork JLtpaAUon fww*0d F'»* 
SerlbttaVwwDfiH) | rawow 
CompvtviinOH Ouvown cyRobanFtizafl* 
Two lor Sbdytry FrArll DicwOry* TrwTaftong Cobrrg 649k 
Tnji Bialc mwad by Brad Qnar 
J*.nj your pn.nwr with <M Anlji 
HarUll*itfnittFS¥*««JbyS»pTOnP«T0-a 
Utlng Fenu torn Amlgiibulc by T- Jonoa 
Sctho SiVbt cy P. .<v:cwti A morHo? prowcton prgg. in C 
LrttcikUKELt:^ r avw i j by Spffl P. Ewnflan 
A Hi of Thru EHAC9 Cy Swvi Pokng 
or- IP F'w FkHwM Ifl Ar-.j i Bi mc '. « T Jonwl 







Volume 1 Number 9 1936 

hiUnl Hualc Ravwwad by E*w P'4?»hkz 

btndwihar RimM by Rkfttrt Kr»pp« 

Thi *.*jfi HiTor^BoK-i Hw U m J By ffrfl Wrdl 

Titd RovwwdrjyJtnancCitfKini 

Amiing DOactory AgjnMlDnfoi#caiiPdrwoLSGBE 

Amiga Davalopara AtttngolSupp'#iiMOw«cfws 

Public Doma r Catalog A kttng of *.- c_« »-d F*ec Ft- PCS 

Doa 2 Dot >9t*M R. Knappa* 

T-nV i rt tw POUS-OOS aid A-r^aBisc 
UuiPlin ivwjw ByfterrtXnaccwrTha^.giScKaadiTBe* 
GLbhu Pi ii"i!K« ay Pns'Wij-v A--gieiT»s 
ThtLoan httMrriEor Program by Brian CaSay 

bate prog, to far your fnanctaJ uptoni 
SUfHrvj Your Own Am Igi fl*i »S aVrtnaai by W Smpwn 
Xaap Track of Yftui Byt^MiUn;ilo Tun by J. Kilmer 
Thi AbaoR Amiga Fortrin Compear wmC Uy fl A fi*i* 
Ut*ijJ fonta tram AmtgiUialt, Par! Two by Tt Jsnec 
HK5 Miooe en th# Amiga by& rM ArJvaTaaystr M 7. 
TBI Uo4i-2 Am : aa Com pi* *av*w by S Fawjta 



Volume 2 Number 1 1987 

Wt-lTDjJ-Wfwta, Cr.WP-ilCaPlatkShfluWB^syJ Fi-t: 
AmlgaBiticDvtavh Color* by &-ja- CaJty 
AmlgaBttitTnlaabYB'yan Cc3*y 
A Public Domain Modula-2 Syitam ravrtwta by Wifran Bock 

On* DrtnCaapKl byDnjg*»Lw*i 

Us^g Ld^o* C w Ji ■ ■ ngtt dmj* (ytlrn 
A UagibyttWIinoul Uagabutia by Ova hmg 

An kr-S-s. Me^iSy* jocrada 
DgfeYlaw revawarj by Ed Jatstw 
Dr J t-:t'c'T-i Crown r#v*w*S ^.'•rt J :'. 
L*is»r b card -e^wf-c by &%** Ra-oo-ii 
■loundNIICompwrjf SyiunTi PANEL rtvuwuJ by RtyLanoi 

Dgi-Mnl by ratwTakrj**ȴMby JjhnFflutt 

Daiun Paint |„_Jroni Batfronle Arti pwawjed by J Foufl 



Volume 2 Number 2 1987 

Thi Mod*n&f j;oi L FtatTr.anifgrsfff ■ BBS Snap 
HactoMed*m i*r*wad by Swpnan R PWitCrWCZ 
C£UMor*rtiluHh>o1aTvipo" by Jfn Maadcm 

• I -' '•; b?*H»n matfiraa 
BBS-PCI rav«H)dlsySBfrwi R. Pwimwez 
Tha Trout* wtti Xmodam by J :-vc" L RflPmin 
T>i ACQ Pra|ac1 P „Dfaphic.TflacailBr«ndng on tha Amiga 

by S. R Pa?owcz 
F ghtS -. i'j I J,C-zt Ceunry Tutor M > . -■- -=:"-■' ■ 
A 3 1 ' L- vi- 1-- In A.- ;i3 1 5C By John Kama* 
OtrtngaridlJiIng Amlgi WwttriehlwnaDyC. Ht-wi 
Ar- gtDOSvarafon 1.2 by C *;-ti Kan! 
Thi (L-iul-ij UDI IntwtacabuStf your own by K*rarcRin 
AmlfllDOS Optrrano Byitam Cilfi and 
Dak f it Ka-ii ji-er ! by D. Hflyrw 
Working with Bw, Workbench by La ji A Manalua P-og ifl C 



Volume 2 Number 3 

Tha Amiga HW 1 " by J Foual 

A Frr look aj tm n«w. najr an} ArhpftW 
Tha Amiga iOO" - &yiyn Fojt- 

Albohalfflknaw, low pnod Amiga 
AnAnalyili rf ti» hWw Amlgi PCa by J FbJt! 

Soecu'ita') on r* Now Ari9u 
Otmlri PifH rjyjil Maadowi 

ThacW^ng Bj%at4n1«a-rJfy«tgvnH 
Sc-btcr rJ*"S a.pt'acpd n An';t3ASC tyfrt.-C 'S-T 
Tha Wlrrtar Cofaunar Elac&mica Show by Jonft Foixt 
A.-i giTn ry w Boa An-^jt^norru* 
broidon Cii;rli by HaTM UaybaekTbt'y 

A js."wy Vrough gaogaE-kuv). i/png C 
8hvghalrntaw«dbyK«^M CorTpra 
ChHimitriHr 2000 1 Ch Htmiv i w l — db " EdTwi V Am!,. > 
Bnj! torn tawidlan aWlaara ravwwd by Ed Barcova 
For*! by Jon Bryan Oaf skwi tavncJ nto yo.yr Fonji progrtrs. 
AaaambiyUrrrVigienrt A.figi™ bj( Oribbvlrt 
RMmifibyrrtiodBQMcttiifafifti^irifjOfig.1 UORE : ' 
AmtgiHotaabyn RaaHu-r BuUBrt. . *No rtrao? Vnat?.. 
1:- r "amc L'S HriMti by J. ■ ■ . v 
CES, uaw gfft-o nauai ind Angt Ei»* 







J^.f 



nis^ 



" tyww 



Volume 2 Number 4 1987 

k-ir-j Irarrfrt J-i Sier.«=yS H. A~.;i A-iC 
Tha UcxrttThit Get Rtfforad by Jwry hUl it; Boo Ri«m 

S»sT:-; P-bi c Doniiri t*p»lwr*CLIry J»--Fi.r 
rlghlkgrjn rrofl 7W) Sin FnnclieA Cwnmodart Shoa 

bySHul 

SoiaVlf SHtlont: San Ff indacn Cnrrm adww Show h Ts^ 
ThariQuiariDldliTbnury Syitim In AmlgiBASC 11 ' 

bjrecntoy 

Secru of Sown Dump* by KaJM Ovi 

Uaaig Funtflbfl Kiyi kritt UkrD&naci by Qrog Dowjtas 

AmigttrizlbyWa'wnBcai Uor« Ar-igi sheneua 

Btalc Gidgrti bf Bf-#n C*I»y Cr«tk gMg« trchni 
OHinrmirwviw*wdbyt ComVl FMIwM rorfri Amcja 
ftii Flaw! I ¥■( d on 2.1 ravawtcl by J. Tracy Anejarn Spaoa 
Tha TIC f*'(w«l by J, Foail BaRrry pawa-oO Co* Calvndar 
UniKDpi ravawby H. T^y An ««ytouM totuggv 



Volume 2 Number 5 1937 

Tha PwHad Bound OtgHliw ravwwbyR BaSa 
TNiFu^/eSojnd Dgtnr^t W Boo; Add*C Vsx\ SO 
FonTi! Sr J Bfynca- ?ar-c) JFo-T ana Uut-Farfi 
■HialnfMl by B Cr *y Aw igaBASX -rx: *^i-* fcx uh m 

■' yoJ pragimi. 
WriengiSttjrtScipalloouai.nCby'T.Fty F*poo/trrmjng 
i*r M;Ql. rWn^avy) SoundScape by SourdSctpt utror. 
Pregrariiffllng In GtCOO Aim -by Langutgt&y C hUnn 

Cart-ruing -■.■- CourrkKi £ Addrsung tlodaa 
Ualng FuturaSwrtd with AmlgsBASC by J. htoadswi 
Ar^aBASCPr»orairtrrngutl^wCi <m.3$ t:*o STEREO 
AmlgaNotaaby R Raa Aravwwat U-nata 

SojncScast Sound Sarp* 
Mora Amlgahotto by R Raa 

A VTiw rev«w al SunriMi 1 ! P*rwd Sound . 
Ha«lonn Won an op In AnlgiBAUC by J. Si«HiH.:Hu* 

rra-rt'iT* 1 br jso r eirw AmgaBASIC progrimi 
Tha lA.ii! ci Pro UOf Studio by SJvr. JeWry 

Airav«wbffcim»** 1 mu»codlaf/pliya'. 
MiJSonGaDgitiPirtlbY M. UayMc*Toi> eMha gibgn 
promoe t* ut*f wrn an OnrW u*M rnajrlic* 



Volume 2 Number 6 1987 

For* ! by J Bkyan Accasa -asx-cw - fePCMKe— a. 
Tha AmATlf^ Comaufinj Kird Dlali Rwlaw by J. FotKoS. 
Laa-ar r'Osr 3»ii'?i CLr Hm D-w. Uo:3!rf 
MAS^>^wj20.ByajbyBy*'fPAJ.J' l S.^m'iAUHyc >«« 
and XaMc't I720H Hati & * Atd A took ttrfM ft w 
a curran^y indar davtapmonl 



alcduia-2 ArigiDOS- M Ut'IJiacyS Fawuevra A 

Calli ta fc- qaDCS rC Trt ROU Urnal. 
A- }* EipanaJon Pviphpil by J. Foutt 

Expawwn o' Arrxga tijMniori panpnaftla. 
Amlgt Tachnrical Support by J FojtI 

How wvl wtwv b ^tt Amga BirJi WpfOtt 
GorjdbyiLoaGibtbyJ. Foutt Doang LosG-aSi 
ThiAmlcua Natwbfkby J. Foutt WattCoat! CompuHr Fajra. 
aaittcomco Shall and ToollrJIbyJ, F«J«t Araviaw 
Thi Uagie 3ac by J FouH Run Mac v<x t 'tri y yoi/ A' 5s 
What Vou Should Know Bafora C hoowr g an Amiga I U) 

tiptnalon ChNlca byS-Orvl 
7 AtaanUwi 1<v rt Amiga by G. HJi Cnoneysur asorbwjr 
high Urt : MHwMf flapficaa Top Ha -ifi-ar : at 

Commpdera by S Hud 
Pttar jLBicrof*byS. Hul Managar itCBMpvatartinsot tot* 
Logjalx A ravww by Renartl Knippar 
Ovfimjt rjy JwwHtTd Kr*cp>- fljr-JEiw 
U0O0 Aaawnbiy Lingwigo Prog/anrnlngDn ha Aflilgt 

byOviMaran 
9l. ptnMaa Pwagrujl Raltflentl Oitabtii by ftly UcCaM 
Am IfaHocw by Rl». %c±~2 A Iwk at F.t. -eSc j-c 
Cammpdan Showi 9w Amiga KWOand SCO at liaSoaton 

Cowiputar Sectary by H MaytwX Tsfy 



Volume 2, Number 7 1987 

Mn* Brttd of Wdao Pnsdueta by Jct Fa. r. 

Vary WMdf by Tii ftarfiam.. 

Vldaeind TourAnlga byOnr Sandi II 

Amtgia A Waatiar Foracaaflng by Brandan LvHn 

A-5q.ir»a ind tht Lin! VWk Dgtttrv byJonrtFauK. 

Aigii AnlmiBr Scrips and Cal Animation &y J»*n Fauat 

Ouallty Vldaorrom aOuillty Computar byCkanSandc H 

N iff flcaRy i StirdirdT by k " Foutt.. 

Amulng Storlot ■ndtttAmlgt^'byJoMFdutt 

All ifaout Pilnrar Drtrara by Rc-i-B BMaA 

IrrtulOon Gadgrta by hamtt MayMek Tafwy. 

Muxi Vi cito I JZ by Boo I *> 

Pro Vidao CCl by Oar, Eanda III 

DgkVlBwZOfMgrenirAornavarjyJvinitv M.Jnk 

FVlam HAM Ec-lor from knpulao by Jamiajf M. Jank 

Ejiyldrmrlno dbiil by>j'vi Foult. 

CSA'a Turbo-Amiga Towwr by AjtrwrJ Abutt 

oHCO AHambry Lingwaga by C---I MarBi 



T 



"■C^cSfe * 



S^-^afi 



Amazing 



^ssn , 






Volume 2, Number 8 1967 

Thiamerrji Amaz:na Compulno,™ facy»5 on tnjrjnTfln: 
fHBtapttteftiJWBfc AmazriggBrr* w*wi.. 

SO( fan Wimr Ba»M \ ftrX Trei^gwn, L=o 
Corpuw F*»«. SroarJ.SilfGoer. Kng't Quant l.llr'd Ml 
Faery Tie AjwrLn, LrSma IfL Factf* J* Aflver*j-f. V<J« 
V«gHtnoBvatTiH- 

Pfcje Amazing monthly tdjnu.. A- 53 NsM. S»ma/a, 

'.':.-., .i-?. 6&000 AtatrtXy Lenguaga ind T-» v ■; . ., 

rrni-nift. 

D4K-3-0 ik by Mrrww Lmc i 

Tha Coioffainti Sxndart By John FolbB 

:.■--,■ :"-::■;■: -1 . : . .-■■-■- -t.-l.J', 

Wfldan Maaaagie h Yo j K~ gi™ by Join Fei*t 

The C on eurr- ar Btetatlea Show a- e Com in By J *■: .it 







^Ammmg 




Volume 2 Number 12 1987 

ThiLHBniita VldBoAccfWory by Larry Whi» 

The Sony Connaesan oy SSMrtflCabb 

15-Pu//Ibt A.n:;iBAUC !ji';:rl-,w. 

Uh.PHI: T> a Bag fining by GtfBMrMI 

The jfrnanffti mr* t>li esiLWHtrW^arrwof LA" 

Amiga Vlma) by John FaUat 

A now Mn^a4m t*» brfecse. r^rac-wvxrjyiejn 

GU Argument in C by Pij CasSrg, 1/ 

HIM Intarfaca Asaptw by Ran) ■.':.: k - 

A-r^a ICW+y* UO >Vk« can ft ASIICs V KB I 

HodJi-3oj BMw FMMamN 

Amlgertoteaby R'divoRu 

1n« B_oa c h nngei - »ce in Thei Amiga SCO a-c ?D0& 

AnmalontorC Rwkjee Pin) H by M. St*ngtf 

uoU ng Cow tt*-&j*ring , 

The Big Plcnjra&y Warren ftng 

tvtoQt™ Aa»r6y language; prvjumajrig to r* t/av*' 

Kazan Kid Rwlairtjy S*pfw R. Pwtiatacj 

CC'UrniHS/ John fat* JamesCrKeanp, anflfkBYWc* 

TnrH C-W sidcs invtsbgatt ■ new A™ 51 &i i-Jid' 

A-Trtk-PbuRfvltw by t>tfldiri Larson 

"Fu: ■?«*;« *— p* pTg-a-r-* & Tairana capatr Hi 

Ci:ig'tp.-«r HbvIbw by John Foot 

Animator: ApprafltlH Ravin* By JohnFouE 

Playing Dynamic Drum a on fl-e Anl ja by DevrJ N. 6i-« 

WerdPertaetReiriew by S*bv»Hu 

l-i:t'X»rui'! Review by E'-«: P. Vvb'h Sr 

RAAt&ROUsxpana.3n: Cc-r*-iand ngalaSon Jpj 

Bug Byte* by Jxi Stffw 

Farm! by Jon Bryan 

Owr-pflPwl utfty far yo*x Laflf grpSoflMH 

AilS** .ft Dy EomCa.-c- 

Art OflbeeUliMk on Dc Pi - Portal. «rd Voeasca; 

Thi a.t ci,a Hftwvk by John Fault 

Tht Comm«e« SWm ml AmiExpo: NaK Vohtl 



■jO 



Volume 2 Number 9 1967 

Analyze 10 «raned by Km S-. ■:. '•.- 
bnpttA Butin«aa C nchtci wm by &JckRajdsn:l 
M etc* cha F3l«r mvw cy Hirv Lisv 
Pigtitur w«w by Fta Wcfe 

Clpn« Preduefltlry $t1 34 raw* rj, P:- E *■■ 
KkfcVRriE "BVw* by HifY Ljmv 

D;i TtlaMfflAiunlealOna Pactiga -wew if S»vt HJI 
Mouaa Tlma ar%d Tlmaatvar nvawi by John FsuA 
fripdtr Memory Eiptnalon tv*wiDy Ji-« DV«>; 
HerabetlaSliflMa/d-2rev«vibyS Fawiuewnu 
Laathar Caddaaaa ot Phoboa 

•ev*w*c by H*r* Mayoaoi-Tofy 
LaaicmC Complw Vr^an HD»i*a w (lby GarySartt 
Hani Ul Updab TFy#iwO by Je*n Fj.e 
AC-BA3C ■«v«nv3 by 5r*actf L»-:- 
AC-aAacCqmpiiiari'-i»^aS*a«-Ba/»or ByBCooy 
Uoe. i-2P'05^ii-i"i SF*wucKiM 

Rim Co- s= « Devce Ev*-s 
DJrartory Ulatlnga Undar AmlJtQOS by Dwf Hiyn* 
AmlgiBASC Pitsmi by EVai Carey 
Prcgraniffllng wCVi Seundatap* 

Tcdor FayTTian'pylBla^ est pin 
it.' VrA, Ww-Praal slant Aagia DavDtopmant, 

"v»*»! by Stavt H- 1 
Jm Coodnow. Davafeopar cri laaru "C 

r*^-«w»Ha"«: UT:./ 



Volume 2 Number 10 1987 

M.i Hiadrevn and th* A- .: : a ty J :■ - Foue 

Taking: tha Perfect Screen Shelby Klall C-v-'r-:. 

A,n g i A?rit: Brian WHllama by Jo- - Fdlai 

A,- -i FoFum dn Carnpuaanra** 1 ... Sofoaaft PubJIaMng 

ComafincaTranacfiptby RcfJtJ Rat 

Afl AbOLTtOrtlftaConta/monjeyRcaflRM 

d8UAhl'av«wad by Ofcd XarT 

An 31 Piaea; 'wt-/*c by Wcr >• UcNtl 

AC-BASIC Com pier rav«MO by Bryan CiX«y 

Bug Bytaa by Jam S»-w 

Amlgi Scaa by &cha.<d Rae 

Root era by T.he Ban-csto 

SKX A Mir- by Unguaf * by Cr • j Uan>i 

The AMICUS Newark Dy J;- - Fr .-;■ 

Av-nji Programming: 

Am -3 1 BASK StrucbnH by Sto* u ;•* 

OwJea ind Oiny Bob* Dy IMajaJ SW^fl*' 

Ol rectory U all ng a Under Amkae-DOS, Part I byrJavsHayva 

Fiat Fill LO arfti HodultrZ Dy S»* FevwuawK 

Wtnd«v I/O by Ftood F-«- = o 



Your Resource to the 



Volume 2 Number 11 1987 

Word Proceaaora Rundcwn by Gee*! Ga- be 

P-oWriB, Scnbb*. BrxjyyiyrJr^rs»ricamc*'»d 
LPO Writer Rav< aw DyMa'^nOtiirc 
Irl/e Write P evra by Hani Laser 
AadllRivltwDyrYBrf' Boa 
WwdPflriBetfterfewbyHa'vLiae' 
Jar San. interview by£c Ba'cavii 

T r e i-r!'o"?j<3 oc aoatliii 
Do-lt-yourtalt Impravimima ta ma Arnkja Ganlcca 
D-3 -Pr-i: Review Gy Han La$cr 
Sculpi 3D Rpr3tw by Snw f**rov*a 
Shadowgjla Rev aw y, L t« hsja- 
TaJaGimaa Ravfew Dj UcT4e> T CaJyal 
Raaaon Pnrrl aw i CjC< gom i: a* 

merwa o/am-j/e/u'- -ui»i w-crr 
AaISmR dj EoceOi^c^" Paa^-ig I'.WsTJPirtc*, 

Cirr 01 V2.3 and 2 ng ' Kayt 
Bug Byte a by Jtshn SUmf 
Am giMoaji by R Raeitbcronc rutcboaki 
Uoflgla-2 Programming by S»n Faw *.-*•«■. 

Mvcss, LO. ana ?■« aariaf part 
Hoomirtby T-r- R.n-.- ■-, 
BBDOQ A»Hfribly Linguiga by Cnr>i Minn 

Cv.* s wits Frough re d ipiay roujraa 
Th« AMCU3 Nahegrli by Jot FOutt 

C Anlmitlon Ptn H by U«* Sw-qa' Arif atanOtwcl 
BASE Tart by Bran Ctlan/P-ial P»H»c! HS-pflrtarnig 
BoundKapa Parts DyTaOi' Fay W Mawarfl-s-a 
Fun with Amiga Numbariby Aa-iBa-wI 
Flit Srowatr ?, Brys-n C - >■ ■ 

FJ Fancuv BASC Fa B>ewar>g ur */ 



Commodore Amiga™ 



The phrase above is not jusl emply words. The pages of Amazing Computing™ are filled with articles on 
technical operations and procedures, basic use, and just-plain-fun. The growing library of Amazing Back 
Issues contains articles from building your own IBM Disk controller, to selling up your own startup 
sequence. Amazing Computing™ has repeatedly been the first magazine to offer the Amiga users solid, 
indcplh reviews and hands on articles for their machines. 

Amazing Computing™ was the first magazine to document CLI 

Amazing Computing™ was the first to show Sidecar™ from COMDEX™ in full detail. 

Amazing Computing™ was the first to document a S 1/4 drive connector 

Amazing Computing™ was the first with a 1 Meg Amiga upgrade hardware project! 

Amazing Computing™ was the first magazine to offer serious programming examples and help. 

Amazing Computing™ was the first to offer Public Domain Software at reasonable prices. 

Amazing Computing™ was the first magazine with the user in mind! 

From the Beginning 

Since February 1986, Amazing Computing™ has been providing users wilh complete information for 
their Amiga. This store house of programs and information is slill available through our back issues. 
From the Premiere issue to the present, there are insights inlo the Amiga that any user will find uscfull. 

$4.00 each! 
Ou r Back Issu e price is stil I $4.00 per issue! (Foreign orders , please add S 1 .00 per issue for Postage & 
Handling. All payments must be made by check or money order in U.S. funds drawn on a U.S. Bank.) 

Limited Supply 

Unforunately, nothing lasts forever, and the avatlabilty of some of our Back Issues is definitely limited. 
Please complete your Amazing Computing™ library today, while these issues are still available. Please 
complete the order form in the rear of this issue and mail wilh check or money order to: 

Back Issues, PiM Publications, Inc., P.O. Box 869, Fall River, MA 02722 
(Please allow 4 to 6 weeks for delivery) 



5 Reasons Why You're Ready For 

MacroModem 



1. You love telecom, but not memorization. MacroModem s user- 
wrilitin macro libraries and companion help screens (36 macros 
per file) store log on procedures, remote system menus and 
commands 

2. You've always wanted to use the mouse after you're connected, 
too. Write macros that mimic remote system commands and menus, 
then execute them with the mouse or keyboard. 

3. You like automation, bin not script languages. Our macros use 
normal commands from MacroModem. remote systems, and 
AmigaDOS. as well as text and control codes. A multi-windowed 
MacroEditor is included. No new programming language 10 learn. 

•1. You want to do other things while downloading a file. 
MacroModem is truly multi-tasking, with a NewCLI available 
anytime, even during file transfers. And MacroModem's error 
checking won't stop downloads unless you tell it to. 

S. Of course MacroModem includes standard telecom software 
features, loo. Teach MacroModem whal you want, and it will 
remember for you. 

MacroModem - lite belter way to do telecommunications. St>9.'J5 

Kent Engineering & Design 

P.O. Box 178. Mottville, NY 13119 

(315)685-8237 



Benchmark Results 

1. Please refer to the Vol. 1.9 issue of Amazing Computing 
for the listing of the benchmark programs. 

2. All compiles were done from VDO: to VDO:. All links 
were done off VDO:. 

3. All runtime checks were disabled. 

4. TDI note: The compiler was run resident. The optimize 
option was at the link stage. 

5. Benchmark note: The compiler was loaded into the editor 
and executed from there. For comparison's sake, I've used 
the InOut module in all programs, even though the compiler 
comes with a module called TcrmlnOut which is only 
slightly more limited; but it can cut down the executable 
size by 50%. 

6. M2Amiga note: The compiler and linker were loaded into 
separate CLIs and never exited, to avoid having them reload 
for disk every time. 





Primes 






TDI 


M2Amiga 


Benchmark 




3 






Compile Time 


1.8 


0,9 


Link Time 


13.5 


1.5 


2.2 


Build Time 


16.5 


3.3 


3.1 


Run Time 


53 


51 

460 


51 

196 


ObJ (Ink) Size 


344 


Executable Size 


4692 


11980 


7656 




Sieve 






TDI 


M2Amiga 


Benchmark 


Compile Time 


4 


2 


1 


Link Time 


14 
18 


3 


3 


Build Time 


5 


4 


Run Time 


6,2 


5.8 


5.9 


Obj (Ink) Size 


734 


668 


384 


Executable Size 


5024 


12188 


16064 




Window 






TDI 


M2Amiga 


Benchmark 


Compile Time 


38 


12 


4 


Link Time 


25 


3 


2.9 


Build Time 


63 


15 


6.9 


Obj (Ink) Size 


1368 


840 


343 


Executable Size 


4512 


12136 


9828 



Continued CALC Listings ) 



(ct Copyright 1986, 1987 
by Steve FaiwisreHsfci 



IMPLEMENTATION MODULE MyRealOut 

< " 

C 
C 

I' ■» 
(* For non-connerclal, non-profit use only •! 
1 * ' ) 

FRCM InOut IMPOST WriteString, Writs; 
FROM Conversions IMPORT ConvertToString; 

PROCEDURE Convlu: LONGCARD] ; 
VAR 

lino: ARRAYI0..79] OF CHAR; 
oonoj BOOLEAN: 
BEGIN 

ConvcrtToString (a, 10, FALSE, line, done) ; 



106 Amazing Computing V3.1 ©1988 



WrlteStringUine) 
END Conv; 

PROCEDURE RealToLongCardlVAR r: REAL; VAR cu: CARDINAL); 
(' This is a ditty hack, but it Harks! ') 
VAR 

overflow : BOOLEAN; 
u : LONGCARD ; 

BEGIN 

overflow ;- FALSE; 
IF r > 6553S.0 THEN 
overflow:-TRUE; 
r :- r - 65535.0; 
END; 

cu :- TRUNC(r); 
u ;- LONGCARD <cu> ; 
IF overflow THEN 
u :- u • 6SS3S; 
END; 

Conv(ii) ; 
END RealToLongCard; 

PROCEDURE WriteKeaKr : REAL; decimal: CARDINAL); 
VAR 

f,U : LONGCARD ; 

i,cu : CARDINAL; 

BEGIN 

IF r < O.C THEN 
Write]'-' ); 
r :- -1.0 • r; 
END; 

RealToLongCard(r,cu| ; 
Write {'.'); 
FOR 1;- 1 TO decimal DO 
r I- r-FLOATICu); 
r :- r - 10.0; 
cu :- TRUNC(r); 
Write! CHRIcu+ORDI 'O'l ) ) .- 
ENDl 
END WrltoRoal; 

END HyRealOut. 

IMPLEMENTATION MODULE HylnOut; 

FROM InOut IMPORT Read; 

CONST LF - 12C: 

PROCEDURE ReadStringlVAR 3: ARRAY OF CHAR) ; 
VAR 

1 ; CARDINAL; 
BEGIN 

i :- 0; 
REPEAT 

Road(s[i]); 
INC(l) : 
UNTIL li > HIGHIM) OR l»[l-l] - LF] ; 
IF S|i-1] - LF THEN s(i-l] :- 0C END; 
END ReadStrir.g; 

BEGIN 

END HylnOut. 



IMPLEMENTATION MODULE Interpreters.- 



(■ 



(c) Copyright 19«6, 1987 by 

Steve FaiwiszevsXi fi Richie Blelak 

For non-conmercial, nan-profit use only. 



(•SQf) (■ Change all JSRs to 3SRs in this nodule ') 

FROM InOut IMPORT WriteStrine:, WritcCard, WriteLn: 
FROM Strings IMPORT Length; 
FROM Storage IMPORT DEALLOCATE; 



PROCEDURE WriteLlne (VAR line: ARRAY OF CHAR); 
BEGIN 

WriteStringUine) ,- 

WriteLn; 
END WrlteLine: 

PROCEDURE TrimtVAR S33: ARRAY OF CHAR); 
(■ Trim trailing blanks ■) 



DYNAMIC DRUMS 

The program that transforms your Amiga™ 
into a professional drum machine. 

• Incredibly realistic sound 

• Create your own studio-quality drum tracks 

• Real or step time programming 

• Graphic Editing 

• Over 100 percussion samples included 
or use your own IFF samples 

• Fully adjustable volume and tuning levels 

• Randomizing options for a dynamic, human feel 

• MIDI compatible 



Require: 5I2K Amiga 
MI, Fl.,*tCA add sales ta* 



DEALER INQUIRIES INVITED 



Send Check or Money Order for $79.95 to: 




W 



P.O. Box 433, St. Clair Shores. Michigan 4BOBO 

C31 3J771-44B5 

Amiga is a iradcmark i>[ Commodore-Amiga Inc. 



VAR 

i : INTEGER; (* not CARDINAL because can go negative ■ I 
dolt : BOOLEAN; 
BEGIN 

i :- Length (sss) - 1; 
doit: -TRUE; 
WHILE doit AND (i >- 0) DO 
IF ssstll-' l THEN 
sss|i] :-0C; 
DECIi): 
ELSE 

doit :- FALSE; 
END; 
END; 
END Trim; 

PROCEDURE FreeNodes (VAR t : nodep) ; 

("•■•■■■"• "**•* .....................| 

(* We dispose of the binary tree pointed to by t in ■) 
(' a recursive banner. We first free up the left son ■) 
(* (if there is one), and then we do the sape to the *) 
(■ right son. Then we dispose of t, and set it to NIL') 

***** 

BEGIN 

IF t«NIL THEN 

IF t-.lsono NIL THEN FreeNodes If. lson) END; 
IF t-.rsonO NIL THEN FreeNodesIf .rson) END; 
DISPOSE(t); 
t ;- NIL; 
END; 
END FreeNodes; 

END InterpreterO. 



(continued) 



Amazing Computing V3.i ©1988 107 



Specijal !!*»! id ay Price. .. . 



mf 



KLINE -TRONICS* 



^ 1 MEG Ran Expansion ^ 

To thdnk Ay/ftf" owners everywhere for the great response 
to our ads, Kline-Tronics is offering this special Holiday 
price. This price is only available directly from Kline- 



Tronics. QrrJer now before the rush. | Rggidarlu 5239 . 95 



o ] Meg* "FAST' Ram in Metal Case 
oTrne "Auto-Configure" 
oFuliy Assembled k Tested 
090-Day Parts & Labor Warranty 

<* AM Ra» Chips Included) 
"HIGH QUALITY" at a "LOW PKICE' 



Y 



MHE-momcs 

10 Carlisle Court York, PA 17401 
Tel. <717>-?64-4205 



* Plus Shipping & Handling 
Li Hi ted Tine Offer 



IMPLEMENTATION MODULE Interpreter; 



(c) Copyright 1986, 1967 by 
Steve Faiwiszewski i Richie Bielak 

For nan-comraercial, non-profit use only. 



(■?□'■> t" Change all JSRa to 8SR» in this module ■) 

CSS--) 

l*ST-«) 

FROM InOut 

FROM MathLibO 

FROM Storage 

FROM Strings 



IMPORT WrlteStrlng, WriteLn, Write, 
wrltecard, wrltelnt; 
IMPORT 3in, cos, tan, log. In, exp, sqrt, 

real, pi, enticr; 
IMPORT ALLOCATE, CreateHeap, DestroyHeap, 

HeapLc f t ; 
IMPORT ConpareResults, Co-pare, Length, 
InitStringModule; 
FROM CoHToandLine IMPORT CLStrings: 

FROM Interpreters IMPORT Trim, WrlteLine, FreeNodcs, nodep, 
maxtree, maxcper, treestack, 
aperstack; 



CONST 



CradSet - CharSetf »S', 'C , 'T' , 'L', ' E' , ' A' ) ,- 

DigitSet - CharSet CO' ..'9' ): 

OperSet - CharSet( l ~' ,'<','-','■','/' }; 



tl : nodep; I" hide this 

linesize : CARDINAL; 



PROCEDURE ItsAF'i-ictionloper : CHAR): BCOLEAS; 
BEGIN 

RETURN (oper IN ICmdSet » CharSet ( '0/ , 'V I ) ) 
END ItsAFunctio.n; 



PROCEDURE precedence (operator 
VAR p : INTEGER; 



'I'll 7.-;.:; 



BEGIN {' precedence ■) 

IF operator IN (OperSet + CharSet ('(*,') ' 
CASE operator OF 

'('.*)' : p:-0 
'*','-' i p:-l 
'•','/• I p:-2 

. p.. 4 | 

•V I pi-1 

ELSE 

WriteLinet ^Precedence: Program Error! I'); 
p :- -2; 
END 
ELSIF ItsAFunctlon(operator) THEN 

p :- 8; 
END; 

RETURN I p) ; 
END precedence; 

PROCEDURE nextokenCVAR line: CLStrinss; 

VAR Linelndex: CARDINAL) ; nodep; 
VAR 

i : CARDINAL; 

fun : ARRAY [0.. 2) OF CHAR; 
m, 
sum 5 REAL; 
tl : nodep; 
done: BOOLEAN; 

PROCEDURE CheckForFuncslVAR line: CLStrings: VAR tl: nodep); 
VAR 

i : CARDINAL; 
BEGIN 

IF lineILinoIndox-1] IN 
CharSet ( »B' , 'X' . 'O', ' I' . ' A* ,'Q' , 'N' ) THEN 
what :-func: 
FOR I:-0 TO 2 DO 
fun[i]:-line|LineIndeji*i]; 
END; 
IF Comparelfun.'SIN'l-Equal THEN tl".oper: -'S' 
ELSIF Compare I fun, 'COS') -Equal THEN tl ".oper:-'C" 
ELSIF Compare I fun, 'TAN') -Equal THEN tl -,oper:-'T' 
ELSIF Compare I fun, 'LOG') -Equal THEN 1 1* .oper :-' L' 
ELSIF Compare Uun, ' EXP') -Equal THEN t 1 -.oper :-'E' 
ELSIF Compare(fun, 'ABS')-Equal THEN tl -. oper:-' A' 
ELSIF fun|0) - »L' THEN tl* . oper:-' N' 
ELSIF Compare (fun, 'SQR' 1 -Equal THEN 
tl* . oper:-'Q*,- 

IF line[LineIndex*3]-'T' THEN 
INC(Llnelndex); 
END: 
END: 
ELSE what:-oopfl; END; 
IF what-func THEN 

IF tl-.oper - 'N" THEN 
INC(LineIndex,2) 
ELSE 

INC (Line Index, 3) 
END; 

done:-TRUE; 
END: 
END CheckForFuncs: 

PROCEDURE CheckForVarlables; 
VAR 

i : CARDINAL; 
BEGIN 

i :- ord (line I Line index.]) - ORD("A'); 
IF valdefli) THEN 

Ok, the variable is defined, but instead of copying ■) 

its value, lets just keep a reference to it. This is ") 
usefull if the variable's value P^ay be changed after *) 
the tree is built. 



) 

tl-.val !- FLOAT)!) ; 
tl*.oper :- *V ; 
what :- number ; 
I JJC (Linelndex) ; 

done .-TRUE: 
ELSE 

HandleError (Miss ingValueError, ORD( line (Linelndex] ) ) ; 
what :- oops 
END; 
END CheckForVariables; 

PROCEDURE CheekrorNumbers: 
BEGIN 

what :- number; 
sum :- 0.0: 

WHILE (linelLlnelndexl IN DigitSet) AND 
(LinoIndex<-lincsize-l) DO 

sum :- sum ■ 10.0 + real (ORDdine [Linelndex] ) - 
ORDP0' I |; 

INC (Lie* Index) j 

END; 



108 Amazing Computing V3.1 ©1988 



IF Linelndex<linesize-1 THEN 

IF line[LlneIndex]-' ,' THEN 
m:-0.1: 

INC(Unelndex); 
WHILE (linelLinelndeK) IK DioitSet) AND 
(Llnelndex-lineslze-l) DO 
sum :- sum + 

n"real<0W>iline[LineIndoK))-OHD[ >D' I) ; 
mi-m* 0. 1; 
mcltinelndu*),' 
END; 
EKB; 
EHD; 

tl".val :— sura: 
dona : -TRUE; 
END CheckForNunbera; 

PROCEDURE CheckForOperands; 
BEGIN 

vhat :- operator; 

tl*.oper :- line[LineIndexj; 

INCILinelnde*] ,- 

done: -TRUE; 

END CheckForOperands; 

BEGIN (■ nextoken ■> 

(* skip blanks •) 

WHILE dine[LineIndex] - < ') AND 
(Linelndex <- Hneaize-1) DO 
iNCiLinelndexl: 
END; 
IF Linelndex > linesije-1 THEN 

vhat t- endofllne 
ELSE (* get a new node ■) 
done : -FALSE ; 
NEWItlJ ; 
tl-.l»on :- NIL; 
tl-.r»on :- NIL; 
tl-.val :- 0.0; 
tl~.oper ;- * '; 
(• check for operands *) 
IF line [Line Index | IN 

(OperSet + CharSetl M \ M ' 1) THEN 
CheckFocOpe rands ; 
END; 

IF HOT done AND (linelUnelndex! IN CHdSet) AND 
(LlneIr.dex<-linesize-3) THEN 
CheckFarFuncs<line, tl ) ; 
END; 
IF NOT done AND 
(line[LlneIndex| IN CharSet ( 'A' . .' Z' I ) THEN 
CheckForVarlableir 
END; 

IF NOT done AND UinelLlnelndex] IN DiqltSet) THEN 
(* cheGk for "regular nurabers" ■) 
eheckForNumbers: 
END; 
IF NOT done THEN 
what :- oopa; 
END; 

RETURH(tl) 
END; 

RETURN (NIL) 
END nextoken; 

PROCEDURE PuahFopGrow; 
VAR 

ti j nodep; 
BEGIN ("pushpopgrow") 

(■ pop the operator stack *) 
t2 :- operstacklostack] ; 
operstack Eostack] :- NIL; 
DEC(ostack) .- 

(* "grow"* a subtree ■) 
IF ItaAFunction[t2' L .oper) THEN 
t2*.raon:-NIL; 
ELSE 

t2*.r*on :- treestackltstack] ; 
treeatackitstack) s- NIL; 
DEC | c stack >.- 
END; 
t2".lson :- treeatack [tstack] ; 

( ■ push the subtree back onto the stack ■ ) 
treeatack[tstackl t— t2; 
END PuahPopGrow; 

PROCEDURE ProcessOpenParen Itl i nodep); 
BEGIN 

i* open pren cannot follow a number ") 
IF whatwas - number THEN 

HandleError (MiaaingOperatorError, 0) ; 
what :- oops; 

(■ otherwise M 1 is pushed onto the stack ') 

ELSE 

INC(ostack); 
operstack[astack] :- tl; 



AMIGA HARD DISK BACKUP HARDHAT 

Full/Incremental/Direclory/Single File backup to microdisks. 
Option list allows skipping of files by name with wildcards. 
Catalog file provides display of backed up files by name with 
size, location and datestamp. Double data compression re- 
duced disk space. Printer interface. Uses CLI or Workbench. 
Multitasking provides background operation. — $69.95 

AMIGA DISK FILE ORGANIZER ADFO 

Having trouble finding that file somewhere in your stack of 
floppys? Can't find all the copies of a particular file? ADFO 
maintains a database of directories and filenames from your 
collection of disks. Fast response inquiries return location and 
last update information. Printer interface. Uses CLI or Work- 
bench. 512K ram and 2 drives recommended — S59.95. 

AMIGA SPELLING CHECKER SPEL-IT 

Uses 40,000 word primary dictionary and optional second dic- 
tionary. Add/Delete words to both dictionaries. Includes 
plurals. Text wordcount totals. Uses CLI or Workbench, Mouse 
or keyboard. — $49.95 

Include $3.50 S&H Mastercard/Visa Accepted 
Calif. Residents Add 6V2% Sales Tax 

3386 Floyd 

Los Angeles, CA 90068 (213) 851-4868 

Order phone 1 800 621-0849 Ext. 494 



whatwas ;- operator 
END; 
END ProceasOpenparen; 

PROCEDURE PrccessClcseParen; 
BEGIN 

(■ A closed pren cannot follow an operator ") 
IF Whatwas - operator THEN 

HandleErrortMissIngOpcrandErrcr, 1) ; 
what :- oops; 
ELSE 

." if everything is ok then pop the 

(* operator stack and build subtrees until '(* Is w ) 

(* found on the top of the stack. 

WHILE (operstack[ostack]' , .oper <> MM AND 
fostack > \\ DO 
PushPopGrow.- 
ENOj 

I* pop M* of the stack *) 
DEC(ostack); 

(■ check for stack underflow *| 
IF ostack < 1 THEN 

HandleError .Mi ssingOpenFarenError,0) ; 
what :- oops; 
EL3IF ItsAFunctiQn{operstack[Ostack] ~ .oper) THEN 
PushPopGrov; 
END; 
END; 
END Process CloseParen; 

PROCEDURE ProcessOperatoiMVAR sign; INTEGER; tl : nodep) ; 

VAR pi , p2 : I NTEGER; 

BEGIN 

(' processing of operators and parens ■) 
I* is 4 little more complicated •) 
IF tl-.oper - »(* THEN 
ProcessOpenParen{tl ) ; 
ELSIF tl A .oper - ')' THEN 
ProcessCloseParen; 

(■ consider arithmetic operators *) 
ELSE 

t" an operator can't follow an operator *) 
IF whatwas - operator THEN 

(* check for a unary minus *) 
IF tl*.oper - »-' THEN 



(continued) 



Amazing Computing V3.1 ©1988 W9 



sign :- sign " (-1) 






operatack[ostackl r-tl; 


ELSE 






whatwa s : -func ; 


Kandle£rror(, w -issingQperandError,2) ; 






END 


what s- oops: 


1 






END 








ELSE 






operator: 


(• if precedence of the operator on the top * ) 






ProcGHsOper^tor < sign, tl) | 


(* of the operator stack is greater than or *) 






endof line: 


I* equal to the precedence of the scanned * ) 






Proe£ssEndOrLir.e(3ign> | 


(■ operator then pnp the operator stack and *) 






oops : 


(■ build subtrees. 






HandleError ( Genera lError,0) ; 


-) 






ELSE 

WriteLine | *■* GrowTree: Program Error ** r ); 


(.* Ke assign the precedence values to variables and ■ ) 






END (* CASE ■) 


(* compare the variables, instead of simply comparing *) 




UNTIL what IN tofcenset ( oops, endofline I ; 


(' the function itself (i.e. do ") 


END 


GrowTree; 


(• IF precedence{tl* .opcr) c- *1 








(* pre cedence (ope r stack [ostack]* -oper) * ) 


PROCEDURE 


SubstituteVar (root : nodep) : REAL; 


f* ) 


VAH 






") 




sign 


I REAL; 


(* because of a bug in version 2 of the TDI package. *) 


BEGI 


N 








sign 


:- 1.0; 


pi :- precedenceftl* .oper) : 




WITH 


root* BO 


p2 :- precedence (operstack f ostack J" , oper) ; 






IF vaKO.O THEN sign :- -1.0: END: 


IF pi <- p2 THEN 






(■ vai*sign gives A3S(val) ') 


PushPopGrow; 




RETURN{sign"synbtable(TRUNC (val'sign) J ) ; 


END; 




END," 




whatwas :- operator; 


END 


SubatltuteVar ; 


INC (ostack) ; 








operstack.[ostack] :- tl 


PROCEDURE 


Evaluate (root : nodep; VAR sucl BOOLEAN) : REAL; 


END 


CONST 




END; 




HaxE* 


p - 11.6; 


END p races separator; 


VAR 










i 


: CARDINAL; 


PROCEDURE ProcessEndOfLine(VAR sign: INTEGER); 




x,p 


: REAL; 


BEGIN 


BEGIN 




[* clean up the operator the stacks ") 




IF (rcotOSIL) AND sue THEN 


(* if there is a , ( * on the stack a *}* was missing *) 




CASE root*. oper OF 


WHILE ostack > 1 DO 






' A . RETURN (root*. val) 


IF operstack[ostack)*.oper - *{< THEN 


1 






ostack :- 1 ; {'i.e. glveup * ) 






H* : RETURN(EUaluate(rcot-.lson,suc) + 


HandleError (MissLngCloseParenErroE, 0) ; 






Evaluate (root" .rson, sue) ) | 


what t— oops; 






*-* : RETURH{Evaluate (root*. lson, sue) - 


ELSE 






Evaluate (root* .rson, sue) ) | 


C if the tree stack under flows *) 






'*' : RETURN{Evaluate (root* .lson, sue) ■ 


(* then we're short an operand *) 






Evaluate (root* .rson, sue) ) 


IF t stack <- 1 THEN 






V : 


ostack :- 1; 






x :- Evaluate (root* .rson, sue) .* 


HandleEErorlMissingOperandError, 3) ; 






IF x <> 0.0 THEN 


what :- oops; 






RETURN lEvaluate(root". lson, sue) / x.) 


ELSE {■ its ok *) 






ELSE 


PushFopGrow; 






HandleError (DivldeByZeroErrar, 0] ; 


END; 






what :-oops; 


END; 






END 


END: 


1 






END ProcessEndOfLine; 






*A' : RETURN 1A3S (Evaluate ( root" .lson, stic) > ) 
v 5' : RETURN(sin|Evaluate (root*. lson, sue) * 
pi/18Q,Q)) 


PROCEDURE GrowTree<VAR line; CLStrings; 


1 






VAR Llnelndex: CARDINAL): 






*C* : RETURN (cos (Evaluate (root", lson, sue) * 


t • *\ 






pi/lBO.Ol) 


I* Build the binary evaluation tree *) 






l T' : 


I* *) 






x: -Evaluate (root" .lson, sue) ; 


{**************** ft*******************] 






p:=cos (K'piASQ .0) ; 


VAR 






IF pOO.Q THEN RETURN (sin (x-pi/lBO . 0) /p) 


sign : INTEGER; 






ELSE 


tl : nodep; 






HandleError ( IllegalValuoForTanError, 0) ; 


BEGIN i" grow tree *) 






what : -oops 


FreeNodes (treestack [ 1 ] ) ; 






END 


llnesize:- Length(line) ; 
sign :- 1; 
REPEAT 


1 










x; -Evaluate (root". lson, sucl ; 


tl :- nextokeft (Lifte,LineIndex) : 






IF x c ManExp THEN BET«RN(exp[KH 


CASE what OF 






ELSE 


(* A number was scanned, just push it •) 






HandleErrortlllegalValueForExpError, 01 : 


{* onto the tree stack. ') 






uhat t- oops; 


number: {* A number cannot follow a number *) 






END 


IF whatwas - number THEN 


1 






HandleError (MissingOperatorError, G) : 






'L' i 


What:-aops; 






x:=Evaluate [root*. lson, sue) ; 


ELSE 






IF x>0.0 T.HEN HETURN(loglx) ) 


INCUstack) ; 






ELSE 


tl*.val ;- tl*,val ' real (sign); 






HandleError ( IllegalValucForLogErrar, 01 ; 


sign :- 1; 






what: .oops; 


treestack [tstack] :- tl ; 






END 


whatwas :- number 


1 






END 

1 






'N' : 

x ;-Evaluate (root" . lson, sue) i 
IF X50.0 THEN RETURN (In (x)) 


func: 






ELSE 


IF whatwas^aperator THEN 






HandleError (I HegalValueForLogError, 0) ; 


HandleError (MissingOperatorError, 0) ; 






tahaC:-oopa; 


What :-GOps; 






END 


ELSE 


1 






INCCostack) ; 


ITh 


c remainder of IMPLEMENTATION MODULE Interpreter will be 




presented next month - Ed] .Ap. 



JJ0 Amazing Computing V3.1 ©1988 



The CompuServe AmigaForum Presents... 



An Interview with Dave Haynie 
of Commodore/Amiga™ 



This is a transcript of the formal 
conference held in AmigaForum 
conference room 2 on November 11th, 
1987. Our guest was Dave Haynie of 
Commodore/ Amiga. 

The following is a heavily edited 
transcript of that conference. Guest 
speakers' and moderator's comments 
are identified with their initials, e.g., 
DH. Forum members arc designated 
with their names inside parenthesis, 
e.g., (Mike). 



(Mike) Hi Dave, nice to see you 
survived the return from Vegas! 

DH: Yeah, Vegas was a blast. Be- 
cause everything worked. For those 
who weren't there, C-A really showed 
some new stuff this time. 

RR: Dave, we're hoping you'll give us 
the show scoop tonight; are you 
willing? We'll just give you the floor 
and you can ramble on about 
COMDEX stuff in as much detail as 
you'd like, then we'll go for questions 
... unless you have another suggestion? 

DH: Okay. Starting with the reason I 
didn't get any sleep before Comdex, 
the 68020 board. This is a plug-in for 
your A2000; it contains a 68020, 68881 
FPU, 68851 MMU, and two megabytes 
of RAM. You can clock the FPU as 
fast as you like with the addition of a 
clock module (and faster FPU). I 
expect it would work in something 
like the 2000-and-l box that ASDG is 
planning, for all you A1000 fans. 



Moving to the right, we had the PVA 
device. This was designed for C-A by 
folks at the New York Institute of 
Technology. It contains a high quality 
genlock and frame grabber in one box. 
Also supports two video inputs, under 
software control. 

On the other side of this part of the 
booth, we had the new hi-res monitor. 
This gives you 1008x800x2 mono- 
chrome, and it works on any Amiga — 
just plugs into the video connector. 
Currently, you RamKick a few new 
libraries to get it running, but future 
ROM/Kickstart releases will have 
support built-in. 

We also showed the 80286 Bridge 
Card. While Steve Ballmer of Micro- 
soft calls the 80286 a "brain-damaged" 
chip, and I'd probably agree, for you 
MS-DOS fans, it's certainly faster than 
an 8088. 10MHz, to be exact. 

Also in the booth was the A2000 
internal genlock. Better quality than 
the 1300, and probably cheaper, too. 

From 3rd parties, there was a de- 
interlacing device shown. Basically a 
scan converter that fits in your A2000 
video slot and gives you up to 
705x512, all 4096 colors, displayablc on 
a multi-sync or IBM VGA monitor. If 
you've seen the quality of the IBM 
VGA, you know exactly what this 
looks like. 

NewTek showed their AmiGen 
genlock device, which fits in the video 
slot of any Amiga. They also showed, 
near the end of the show, their "Video 



Toaster." That's a killer machine. 
Does simple things like "pixelizations," 
or more complex things, like wrapping 
live video images around spheres. All 
the things hard-core video types 
AREN'T using Amiga for right now. 
At least, I was very impressed. 

Software was shown too. Some good 
software. Deluxe Productions, 
basically a storyboarding program. 
Professional Page, City Desk, lots of 
things you may have heard about 
from AmiExpo. There's even more 
going on behind the scenes; I think the 
outside world is really starting to 
notice Amiga. My only complaint: 
fewer Amigas in other booths than 
Macintoshes, though there were some. 
Oh yes, except for Progressive Periph- 
erals. They had an almost all Amiga 
booth. One ST, one or two C-128s, the 
rest Amiga. They've got a very fast 
frame grabber, two CAD packages, 
and a little program for digital signal 
processing and other graphic manipu- 
lations called PixMate. Does basically 
what the University of Lowell DSP 
board does, things like line detection, 
only not real time. Still, they use the 
blitter to do DSP faster than a fast '020 
could do it. Anyway, I guess I can 
answer some questions now, 

RR: Dave, before opening the floor, 
can you project prices or releases on 
any of this, or is it still too early? 

DH: We didn't have any pricing 
available on most of the C-A products 
shown. They haven't been officially 
announced yet, though they're really 

(continued) 



Amazing Computing V3.1 ©1988 



m 



not that far off. In the old days, these 
probably would have been shown in 
private. Still, I'm reasonably sure that 
the '020 with 2 meg of fast RAM will 
cost far less than any similar config- 
uration for the Amiga currently on the 
market. Wish I had better pricing info, 
but it's really a marketing/sales thing 
to set the pricing, and they haven't 
been given any of our new stuff yet. 

RR: Okay, fair enough. The floor is 
now open for questions. 

(Vic) RE: Hi-Res monitor: "1008 x 800 
x 2 monochrome"? What's the "2"? 

DH: That's two bitplanes. Like a 
normal Workbench screen, except in 
this case it's black, white, light grey, 
and dark grey. You can run it in one, 
if you like, but for compatibility 
reasons, two planes is the minimum 
that most Workbench software will be 
happy with. The "1008" some of you 
may recognize as an Agnes number. 

(Marlene/SYSOP) Dave, can you tell 
us more about NYIT's board, your 
impressions of it, and potential release 
date. 

DH: Sure thing. As far as release, I 
believe it's already in FCC test, which 
indicates that, barring any changes to 
make Uncle Sam happy, the design is 
complete and frozen. No official word 
on release date, though. As for 
potential, I played with it some, and 
it's kind of neat. Really good quality 
genlock, on par with the best I've 
seen. You have in instant frame grab, 
though that's into local board memory; 
the transfer to an Amiga IFF file takes 
longer. It does have software which 
looks pretty far along too, the cap- 
tured image can be converted to 
HAM, lores, or hires. Programs can 
swap video inputs, which is a feature 1 
haven't seen yet. They had it set up 
on one camera and one VCR; you click 
on a gadget to go from VCR to 
camera, or from live to captured 
image. I'm not totally familiar with it; 
it may have other features as well, but 
what I saw of it worked very nicely. 



(Paul B.) Dave, can you tell us if and 
when the medium/long persistence 
monitor will be available? 

DH: Last I heard, the 2080 monitor of 
which you speak would be available 
in January, or thereabouts. I haven't 
personally seen one since the last 
demo unit at CES last January, but 
that's not really unusual, since the 
product is OEMed from outside. The 
one I did see was very nice, tighter 
dot pitch than a 1080, and with 
ProWrite running black on white the 
flicker was all but non-existent, no 
worse than a PAL monitor. Hope they 
ship as nice a unit. 

(Fred Kohler) Dave, will there be any 
hardcards out for the Amiga 2000 that 
go into an Amiga slot? 

DH: I haven't seen one yet. C-A isn't 
planning one. The decisions behind 
the C-A hard disk were based on 
realities. Like, you can get a large ST- 
506 drive from any PClone garage 
shop vendor cheaper than you could 
from CBM. They'll sell you a hard 
drive, but integrating would kind of 
force you into accepting the drive WE 
pick for you instead of the one you 
really want. Maybe a 3rd party will 
make one. 

(Dave K.) Dave, I'd like to hear more 
about the 68020 board. For instance, 
can you turn the '020's instruction 
cache on and off with it? Can you 
still use 16-bit RAM with it installed? 

DH: Okay. AmigaDOS will turn the 
Cache on automatically on system 
initialization, and then leave it alone. 
So once you're up, you can turn it on 
and off at will. The on-board 32 bit 
RAM autoconfigures as the first 2 
meg, but any extra 16 bit RAM can 
still be used out in the expansion bus, 
and 16 bit DMA devices can DMA 
into the on-board 32 bit RAM if they 
like. The 32 bit RAM runs at 14.2 
MHz with one wait state (due to the 
MMU). 



(Isaac Cruz) Good evening Dave! Any 
news on expanded memory (beyond 
ISM) for the A500? And how about 

the availability of hard disks for the 
same machine. Prices? 

DH: Glad you mentioned that. Byte- 
by-Byte showed a 2 meg external, self 
powered memory add-on for the A500, 
nice unit. Detects when the A500 is 
powered on, sits on the left beneath an 
add-on floppy, if your floppy reaches 
over there. I think Supra already has 
a hard drive for the A500, and I know 
of at least one other hard drive for the 
A500, unannounced at this time, that 
will also probably house a meg or two 
of RAM as well. WARNING: DON'T 
BUY A NON-POWERED EXPANSION 
DEVICE FOR THE A500. 

(Doug) A non-powered expansion 
device, Dave? You mean like the 
A1010? [Grin) My question concerns 
the new bridge card. The current 
software for the 4.17 Mhz card that's 
available now is pretty slow on screen 
scrolling, etc. Are there any new 
breakthroughs for changing this, since 
scrolling will supposedly be more 
intense with the new 286 bridge? 

DH: Well, one A1010 is OK, after 
that, worry. Anyway. Yeah, I finally 
broke down and hooked up a bridge 
card myself. The color screen will be 
more along the lines of what you get 
in PC performance, I believe, since 
there's less Amiga-side manipulations 
involved. The AT card will run a bit 
faster, since the 80286 is running 
faster. But they do use the same 
interface chips, and the same Amiga- 
side software. So short of adding a 
68020 card, don't expect a major 
speed-up until perhaps the next 
revision of the PC software. 

(Doug) [Sigh] That's what I was 
afraid of. R.I.P. 286 Bridge! 

RR: Dave, Steve Ahlstrom asks if you 
can pull the 8088 in the bridge and 
replace it with an NEC V20. 



312 Amazing Computing V3.1 ©1988 



DH: I've never actually tried a V20, 
but I imagine it'll work OK. The 2088 
system timing isn't extremely tight, the 
interface chips WERE designed to 
support the AT board as well. But I'm 
not all that familiar with the differ- 
ences; trying it would be the best test, 
of course. 

As far as RIP bridge board 286 goes, I 
doubt it. I never expected the 2088 to 
sell very well, but we can't make them 
fast enough, by about a factor of 3. 
As the PC, at least in my opinion, was 
never a graphics intensive machine in 
any stretch of the imagination, I don't 
think slow graphics would kill it 
necessarily. 

(Bill Atkinson) Dave, how would you 
compare the MicroChannel and NuBus 
to the B2000's bus for performance and 
expansion (32 bits etc.), and, by the 
way, THANKS! for the B2000. 

You're quite welcome! Anyway, first 
and foremost, the B2000 bus is very 
much the original Zorro bus with 
three interrupt lines changed some- 
what. And it's very much a 16 bit 
bus, though as long as 1 have any say 
in the matter all your B2000 add-on 
cards will drop into a future 32 bit 
machine and work just fine. As far as 
comparisons to other busses. Micro- 
channel has basically caught IBM up 
pretty close to the rest of the world, 
and the Amiga bus really was the first 
there (among the three). 

All three systems have a method of 
autoconfiguration. NuBus takes a very 
simplistic approach; there are 16 slots, 
each has a ROM at the top, and each 
occupies 16 meg. Easy to do on a 32 
bit machine, but the Mac software 
doesn't like this yet, so in reality each 
slot is 1 meg. I think Amiga's system 
is better in that respect, though real 
NuBus has a 256 meg pool to draw 
upon for those things that don't take 
up just 16M. But NuBus is better as a 
peripheral bus; it's slower than on- 
board memory, being self-clocked at 
10MHz. The Amiga bus, while slower 
than NuBus, incurs no penalties, 



speed-wise. MicroChannel's configura- 
tion looks pretty convoluted, but at 
least it's there. 

MicroChannel also supports shared 
interrupts, something we've always 
had, though there's no software 
support for it yet, and I heard a rumor 
there won't be in (the initial releases of 
OS2) either. NuBus has one dedicated 
interrupt per slot, which I don't like, 
'cause you can't handle system 
priorities right that way. 

As for DMA, Amiga's DMA, except 
for the Coprocessor slot, is an all-or- 
nothing affair, whereas NuBus and 
MicroChannel both support some 
fairness, so they can better deal with 
alternate processors on the main bus. 
Fairness isn't much of a win in dealing 
with burst DMA like hard disks, 
though. NuBus also supports resource 
and DMA locking, which is essential 
to multiprocessing. MicroChannel and 
Amiga don't, though the fact that 
Amiga doesn't have DMA fairness 
kind of eliminates the need for 
locking, since once you have the bus, 
you can't be thrown off. Oh, and 
even on the 386 machine, 
MicroChannel doesn't have enough 
bandwidth to truly support a full-time 
coprocessor; neither does Amiga. But 
then again, I haven't done MY 32 bit 
bus yet. NuBus could reasonably deal 
with one. I could rant and rave for 
days, but that's basically it. 

(Glenn) Dave, what improvements 
and new features are in DOS 1.3? 
And, when will DOS 1.3 and the 1Mb 

Fat Agnes be available? 

DH: Can't really get into too much of 
that, and it's not just because I don't 
really know that much about it. The 
next release, 1.2.1, will give you boot 
from arbitrary device, like hard disk or 
EtherNct. But no enhancements. 

I think the main idea behind 1.3 will 
be to hone the system. 1.2 pretty 
much fixed the major bugs, and put in 
the hooks for things like RamKickcd 
library modules. 1.3 would certainly 



APL.68000 



$99 



A HIGHLY OPTIMIZED ASSEMBLER 
BASED APL INTERPRETER FOR 
FAST AND POWERFUL PROGRAMS. 
FEATURES A COMPLETE INTER- 
FACE TO THE AMIGA ENVIRON- 
MENT WITH PULL-DOWN MENUS. 
REQUESTER AND ALERT BOXES, 
SPEECH, SOUND AND GRAPHICS 
FACILITIES. 

Order direct for S99 ♦ S7 shippi ng. S10 Canada. 
VISA/MCAMEX + a% NJ rss + 6% tales tax. 

SPENCER 

ORGANIZATION, INC. 

P.O. Box 248 West wood. N.J 07675 
1201) 566-6011 



fix all known bugs, and I think they'll 
be speeding things up all over. Lots 
of folks know about the faster print 
drivers. They're called 1.3, which tells 
me that they're targeted for the 1.3 
release, which I wouldn't expect for 
maybe 6 months or more. But also 
they're very far along, so you might 
see them sooner. You could run just 
about any 1.3 enhancement that I've 
heard of on a 1.2 system, so there's no 
absolute need to release the entire 
thing at once, only the desire to keep 
OS releases well understood and 
under control. But as I implied, I'm 
not really the guy to ask for this. 

(Karl Sparklin) Other than those 
mentioned in responding to Bill, what 
other changes were made to the A2000 
to arrive at the B2000? I've not heard 
much about it. 

DH: Well, the 100 pin backplane 
changes, which were minor, were put 
in for the A2000. And 1 didn't do 
anything to those, 'cause we wanted to 
keep the 100 pin bus as standard as 
possible, since we're planning to use it 
for a long time to come. What I did 
change was the coprocessor and video 
slots. Part of the reason for the 
changes was what we had identified 
as the reason for these slots at the time 
of my design, versus what was 
originally envisioned. 

(continued) 



Amazing Computing V3.1 ©1988 113 



The coprocessor slot started out being 
basically a local bus access point for 
the extra 512K of A2000 RAM, and 
possibly a bus-monitor type MMU at 
some future point. (All this docs is sit 
around and yell, via BUS ERROR, if 
an access violation occurs. No 
translations possible.) Anyway, the 
extra 51 2K was gone when I put that 
on the motherboard, and there was a 
need for a real 68020 upgrade, which 
includes a real MMU. So 1 added the 
B2000 coprocessor protocol stuff, 
which basically allows a 68020 card in 
that slot to request the bus from the 
68000 and become a fully equivalent 
bus master. Any 100 pin bus masters 
completely lock out all others when 
they have the bus, as I mentioned 
before. Okay for burst stuff, but not 
when you're taking control. Anyway, 
it is possible for a 68020 or whatever 
to come on, run as a full 68000 
replacement with hard disk DMAs and 
everything, then get off (though our 
68020 card never gives the bus back, 
for A2000 compatibility). On the 
A2000, you have to pull the 68000 out 
to use a coprocessor, but I kept the 
data sense of the bus arbitration lines 
the same, so a single jumper on our 
'020 card sets it up for the proper 
motherboard. 

The other main enhancement I added 
was the second half of the video slot. 
Originally, that was intended for 
genlocks or modulators, but 1 though 
it was kind of weak, so I added the 
second slot for access to all 12 bits of 
digital video and more system clocks. 
George Robbins basically suggested 
the port lines from the parallel port go 
there too, so we can have some 
communication to devices there. 
Anyway, consider the video slot a 
standard thing that you'll see in future 
machines, while the coprocessor slot is 
a machine specific thing that will 
probably go away if the general 
expansion bus gets upgraded in the 
future on a 32 bit machine. Huff and 
puff, my fingers hurt. 

(Paul B.) Dave, we have been hearing 
for some time now of a new Agnes 
chip that will give us extra chip 



memory, higher resolution, more 
colors, etc. Is there any truth to this at 
all? And if so, when? 

DH: There's certainly work being 
done on new chips all the time. First 
of all, anyone who takes a second look 
at the Fat Agnes architecture will 
notice that it's controlling 1 meg of 
memory right now, though internally 
Agnes only talks to 512K of RAM as 
chip memory. So it's definitely 
possible that a drop-in replacement 
would support 1 meg of CHIP 
memory. However, when such parts 
will be generally available, I can't say. 
When I get mine, then maybe we can 
talk [Grin]. As far as higher resolu- 
tions and more colors go, that is more 
complicated, because it requires an 
agreement between Agnes and Denise. 
Agnes supplies the video sync signals 
and stuff, but Denise is responsible for 
interpreting the information that 
Agnes gives it and turning it into the 
video you get. From what I know of 
Denise, higher resolution is possible 
but also not very straightforward; 
more colors is more difficult. Not that 
you won't ever see such things, but 
they're not going to be here real soon 
or anything. 

(Isaac Cruz) Dave, given that the 
A500 power supply is, to put it mildly, 
barely functional, are there any plans 
to provide a more robust supply either 
by C-A or other vendor? 

DH: Progressive Peripherals is 

making some kind of memory expan- 
sion for the A500, and it comes with a 
beefier power supply. That's the only 
one I've heard of so far; I'd expect 
most add-ons to have their own add- 
on supplies instead, since that's 
simpler to do unless you go inside. 

(Jim Williams) Dave, what is the 
supply of Amigas like? Will there be 
enough for Christmas sales, since 
dealers seem to be getting a lot of 
back orders? 

DH: I sure hope so. Last I heard, 
they're just barely keeping up with 
A500 demand, but they are keeping 



up. A2000s are coming along slower, 1 
guess due to the fact it's a newer 
machine, there are more parts to 
gather from the four corners, and the 
trade-in deal has probably boosted 
demand more than CBM expected. 
And the fact that the Germans, at 
least, are buying them at more a 
consumer than a business/professional 
machine rate. Which suits me just 
fine, if only they can get production 
up. By the way, they are building 
them downstairs in West Chester, so I 
expect that the dealer supplies, now 
pretty well dried up, should start 
flowing again soon. 

(Thorn C.) I missed out on Comdex 
but am thinking about on going to the 
World of Commodore show. Do you 
think the trip would be worthwhile? 

DH: I think so, Thorn. I was at WOC 
last year, and, based on that, I expect 
that CBM will be showing pretty much 
the same kind of things that were at 
Comdex, probably with the addition of 
C-64s and C-128s. I'll have a 68020 
board for them. The WOC show was 
a step above CES last year, my first 
trip to WOC. I left feeling all kinds of 
warm and fuzzy about Amigas. 

RR: I'll close this out with a question 
from Marlene, who's doing duty on 
another channel. Dave, what about 
68030 support? 

DH: Good question. The current OS 
would detect a 68030 as a 68020, and 
run it accordingly. A reasonable thing 
to do, since the 68030 wasn't fully 
specified when 1.2 was frozen. I'm 
sure 1.3 will have a 68030 flag, though. 

RR: Marlene tells me that what she 
REALLY wanted mo to ask is [Grin] 
do you think CBM can remain com- 
petitive, especially with business 
oriented users, if you don't pursue the 
68030 rapidly (since by the time the 
68020 support is available, that chip 
will be "old news")? 



114 Amazing Computing V3.1 ©1988 



DH; Fair question. Let's look at it 
from another point of view. The 
68000 was already in two machines on 
the market, one with a significant lead 
time (the Mac), by the time the A1000 
came out. Even if Apple has a 68030 
done by the time we have a 68020 
machine, I'm skeptical that it'll be that 
much of a difference. Then again, I 
still don't see the 68030 as THAT 
MUCH of a great advantage over the 
68020 in our future designs, given the 
same system clock speed. Also 
consider the fact that a 68030 will add 
maybe $800 or more to the final cost 
of any 32 bit machine we might 
produce. About all I can say is that, 
(1) our 32 bit machine will do things 
that Apple's doesn't, (2) we certainly 
won't ignore the 68030, now that it's 
real, and (3) at least WE have an OS 
that supports these 32 bit chips. And, 
on the '020 vs. '030 question, we may 
have a surprise or two you aren't 
considering. 

RR: I, for one, have a dozen more 
questions, and 1 know you all do too 
... but Dave's been typing (LOTS!) for 
about two hours, and that takes a toll. 
So, I'm going to close down the 
official CO. You are all welcome to 
chat for as long as you wish. Dave, 
thanks a million for a great CO and 
you have a standing invite to come 
back! Thanks! 

[At this point, the formal conference 
was terminated. The following are 
excerpts from the informal chat which 
followed.] 

(Paul B.) When will we see a 32 bit 
machine, Dave? 

DH: Well, I've got this '020 board to 

finish up. "Not soon enough" is a 
good answer. 

(Doug Erdely) Any word when the 
68020 board for the A2000 will be out? 
And the price? 

DH: Don't know the price or release. 
It's almost done, engineering-wise. 



(Nelson) Will the A1000 support 1.3 
and vice-versa? 

DH: Yes, 1.3 will be available on the 
A1G00. 

(Mariene/SYSOP) Dave, you must be 
back-ordered like 
crazy on the 2000. 

DH: I'm worried, the A2000 seems so 
back-ordered from what I hear. I'M 
still waiting for MY A2000 (at home, 
got one at work). 

(Thorn C.) BTW, Dave, have you guys 
had any problems with the seating of 
the Bridge card in the slot of "your" 
2000? 

DH: I've never had any bridge 
seating problems, other than it's 
generally tough to plug in. I've drawn 
blood more than once pulling them 
out. 

(Mariene/SYSOP) Dave, have you 
heard of some 2000s not GURUing 
properly? Mine does this; the screen 
just freezes, and I have to control-A-A 
to get a GURU. 

DH: There is a know AlcrtO bug. 
Happens on any system with SCOOOOO 
memory. 

(Glenn) Dave, has C-A recognized yet 
that there is some kind of problem 
with SCSI and the A2090? 

DH: C-A has recognized that there is 
some kind of problem with SCSI in 
general: that it's a non-standard 
standard. They're trying to keep a list 
of all SCSI devices that work properly. 

(Glenn) Will there be a software fix, 
so that the SCSI formatting problems 
go away? 

DH: Glenn, there apparently should 
be a deep-format capability, which, as 
I understand it, is basically a utility 
that sends the "format this thing" 
command to the SCSI controller. 
What is absolutely needed, for this 
and other things, is a SCSI.DEVICE. 




Oriental Desk Top Art 
vol. 1 

High resolution images 
Oriental artwork 
IFF format 

Use as clipart in desktop 
publishing programs 




Price: $29.95 



Software Integration Solutions 

1G496 Bernardo Center Drive 
,y> San Diego, CA. 92128. 



Tel: S 19-451 -3094 



unve 



The main problem with SCSI is its 
implementation. The thing is that 
some controllers arc basically dumb 
SCSI controllers. But SCSI is a smart 
interface standard. So on these 
devices, it's up to the implemcntor to 
provide a microcontroller with the 
smarts. If there's a bug in the SCSI 
code of the microcontroller, you lose. 
The A2090 uses a Western Digital SCSI 
chip with intelligence in it. So if we 
screwed up the SCSI, at least low-level 
stuff, that's them, not us. But I'm 
pretty confident that WD did it right. 

I'm really happy with my A2090. I've 
got two ST-506 drives on the one at 
work, two at home. It's real DMA, 
reasonably priced, and even if you get 
ST-506 drives, I think SCSI will 
become increasingly important in 
future years. 

(Steve/SYSOF) Glenn, SCSI works 
fine with the Adaptck 4070, but there 
is a DEFINITE problem with the 
driver if you have a non- workbench 
screen up. Using a SCSI drive you get 
I/O errors ALL the time; hit retry and 
it recovers, go back to the non-WB 
screen and more R/W errors. (This 
happens with 1 ST506 connected and 1 
SCSI.) 

(continued) 



Amazing Computing V3.1 ©1988 



115 



q0' 



HARD DRIVES 

150 meg $1595. 95 

65 meg $ 949. 95 ^ 

40 meg $ 879. 95 fp 

20 meg $ 659. 95 £t 



EXTERNAL 3.5 

ONLY $159. 



DRIVE 

95 



9. H 5 each 

RAM 



Hard drive comes complete with SCSI 
controller, fan cooled power supply with case 
and a true SCSI hard disk (no interface 
boards) . 
Full ONE YEAR warranty! 



ASK ABOUT OUR REMOVABLE 
MASS STORAGE DEVICES 



CABLES: Serial or Parallel C 
RAM amxga 500 

512K with CLOCK .. $ 129.95 
1.5 meg INTERNAL . $ 389.95 
2 meg EXTERNAL ... $ 44 9.95 
AMIGA 1000 

1.5 meg INTERNAL . $ 389.95 
2 meg EXTERNAL ... $ 449.95 

AMIGA 2000 



2 meg INTERNAL 
ASK FOR OUR COMPLETE PRODUCT CATALOG 



$ 409.95 



PIONEER 
COMPUTING 

-BLAZING NEW FRONTIERS IN PERSONAL COMPUTING- 



2469 EAST 7000 South #200 
Salt Lake City, UT 84121 

(801)942-1174 



DH: What Steve's talking about is 

based on what I call DMA latency. 
You can eliminate some of this by- 
running SlowMcmLast before 
Binddrivers if you've got fast memory 
on the bus. But what Steve says 
makes me believe that there must be a 
software problem too, for at least I 
was led to believe that SCSI was 
happier with choppy DMA access than 
ST-506. 

RR: Dave, what exactly is the source 
of the problem? 

DH: The problem is based on the 
bandwidth of CHIP RAM getting tied 

up in display at higher resolutions. 
The DMA device asks for the bus, and 
the 68000 would like to oblige. It 
gives the device a Bus Grant, which 
says, 'Things are all right by me for 
you to take over the bus." However, 
the Amiga DMA arbitration follows 
the 68000 protocol very closely, and 
this says that you must wait until the 
end of a memory cycle before you take 



over the bus. The custom chips keep 
the 68000 off the bus by wait stating it, 
which means you may have to wait a 
full scan line before your DMA gets 
the bus, even though you really have 
the expansion bus yourself. 

The problem is compounded when 
you're DMAing to Agnes controlled 
memory, because you not only have 
this long wait for control of the bus, 
but you then have to spit out DMA 
data only during non-display time. 
The end result is that you can easily 
have a disk overrun. If you DMA to 
expansion bus memory instead, once 
you have control over the bus, you get 
your burst DMA without waiting, 
since the custom chips don't wait-state 
anything that's using expansion bus 
memory. Well, the problem is that in 
hi-rcs modes, ALL of the video bus 
bandwidth is being used during 
display time. I would have liked to at 
least remove the latency problem, but 
the obvious solution to the problem 
requires an 010 or 020. 



(Murray Trickett) Are there any 
boards around in the USA that allow 
you to plug in IBM type hard drive to 
the A500? 

DH: There's some kind of device/ 
driver combination I've read about 
that turns a PC hard drive into an 
Amiga hard drive, without a bridge 
card. Don't think it was specifically 
aimed at the A500, though they may 
have a version. 

(KEITH YOUNG) Dave, is the 1.2 
DOS in the A500/A(B)2000 any 
different than that released (on disk) 
for the A1000? 

DH: The 1.2 KickStart and ROM are 

identical. The A2000/A500 vs. A1000 
WorkBcnchcs have some minor differ- 
ences on them. 



Copyright 1987 by CompuServe 
AmigtxForum, Dave Haynie. 

•AC* 



116 Amazing Computing V3.1 ©1988 



The AMICUS Network 



■:.. : '-:'.. : 



New Public Domain Disks, Commodore and Developers 



By John Foust 



The national computer networks have 
been very busy during the past few 
months. This activity brings a wind- 
fall of new public domain software. 
So, here are descriptions of three new 
AMICUS disks, numbers 24 to 26, as 
well as highlights from the latest Fred 
Fish disks, 103 to 110. 



Disk 24 

AMICUS disk 24 has a little of every- 
thing, from C, assembler, BASIC and 
Modula-2 program examples, to 
games, animations, and utilities. 

Sectorama is a disk sector editor for 
any AmigaDOS file-structured device. 
David Joiner of Microlllusions devel- 
oped it for recovering files from a 
trashed hard disk. 

Iconize reduces the size of IFF images, 
performing full anti-aliasing for the 
best results possible. It does a 
wonderful job and comes with a 
companion program, Recolor, which 
remaps the palette colors of one 
picture to use the palette colors of 
another. Using these programs and a 
tool to convert IFF brushes to Work- 
bench icons, you can make icons 
which look like miniatures of the 
pictures. 

CodeDemo is a Modula-2 program 
which converts assembler object files 
to inline CODE statements. Modula-2 
programmers would use this tool to 
incorporate short assembly language 
programs in their programs. Cod- 
eDemo comes with a screen scrolling 
example that makes a fly walk across 
the screen. AmiBug is a cute little 



Workbench hack that makes the same 
fly walk across the screen at random 
intervals. Otherwise, it is completely 
harmless. 

BNTools are three examples of 
assembly language code from Bryce 
Ncsbitt. The programs include: 
SetLacc, a program to switch interlace 
on and off; Why, a replacement for the 
AmigaDOS CLI Why command; and 
Load It, a program to load a file into 
memory until a reboot. (Only the most 
esoteric hackers will find Loadlt 
useful.) 

Monolacc is a CLI program which 
resets Preferences to several colors of 
monochrome and interlace screens. C 
source is included so you can change 
the preset colors. It works with 
DisplayPref, a CLI program which 
displays the current Preferences 
settings. 

BoingMachine is the latest animation 
from Ken Offer, a winner in the 
BADGE Killer Demo contest. Offer 
makes his animations with Sculpt 3D. 
BoingMachine is a ray-traced anima- 
tion of a perpetual motion Boing- 
making machine. It includes the latest 
version of the Movie program, which 
has the ability to play sounds along 
with the animation. 

Daisy is a minimal example of using 
the translator and narrator devices to 
make the Amiga talk. It is written in 
C. QuickFlix is a script-driven 
animation and slideshow program that 
flips through IFF images. BMon is a 
system monitor program written in 
AmigaBasic; it lets you perform simple 
manipulations of memory. 



Moose is a background program like 
the Macintosh Talking Moose. At 
random intervals, a small window 
opens with a moose that resembles 
Bullwinkle. The moose says some- 
thing witty, such as "Get back to 
work," and the window disappears. 
You can change the phrases, if you 
like. 

DGCS, short for "Deluxe Grocery 
Construction Set," is a simple Intui- 
tion-based program for assembling and 
printing a grocery list. 

The Virus Check directory holds 
several programs relating to the 
software virus that came to the US 
from pirates in Europe. This insidious 
program was detailed in Amazing 
Computing V2.12. The program has 
been fully disassembled by Commo- 
dore technical support, and Bill 
Kocstcr's full explanation of the virus 
code is included. According to 
Kocster, "Just like the real thing, the 
best course of action is education and 
prevention." One program checks for 
the software virus on a Workbench 
disk; the second program checks for 
the virus in memory, which could 
infect other disks. 

The Commodore analysis of the virus 
code says it only prints a message at 
random intervals. Although the 
current version of the virus docs not 
format or destroy most disks, it can 
harm some copy-protected software, if 
the software has special program code 
stored in the boot block of the disk. It 
is interesting that this virus can only 
harm programs copy-protected in this 
way. 

(continued) 



Amazing Computing V3.1 ©1988 117 



Disk 25 

Nemesis was an entry to the BADGE 
Killer Demo contest. It is a graphics 
demo that pans through space towards 
the mythical dark twin of the sun with 
wonderful music and space graphics. 

The KickPlay directory holds text that 
describes several patches to the Kick- 
start disk. For Amiga 1000 hackers 
who feel comfortable patching a disk 
in hexadecimal, KickPlay offers the 
chance to automatically do an ADD- 
MEM for old expansion memory, as 
wolf as the ability to change the 
picture of the "Insert Workbench" 
hand. A program is also included for 
restoring the correct checksum of the 
Kickstart disk. 

KeyBird is a BASIC program that edits 
keymaps. You can adjust the Work- 
bench kcymaps or create your own. 

SColorWB modifies the Workbench so 
three bitplanos are used, meaning 
icons can have eight colors, instead of 
four. Several eight-color icons are 
included. Fortunately, the public 
domain program "zapicon" or 
"brush2icon" gladly converts eight- 
color IFF brushes to icons, so you can 
use Deluxe Paint to make icons for 
this new Workbench. 

Brushlcon converts brushes to icons ... 
or maybe it isn't. The documentation 
is in a strange foreign language with 
lots of umlauts and long noun-based 
words, such as "Workbcnchomgivnin- 
gcn." 

Egraph is a graphing program which 
reads [x,y] values from a file and 
displays them on the screen. It is 
similar to the same-named Unix 
program. 

Keep 1.1 is a message-managing 
program for telecommunications fans. 
It lets you save messages from an 
online transcript to another file. Keep 
1.1 understands the message format of 
the national networks and several 
types of bulletin board software. It 
moves through the transcript and lets 
you save messages that interest you. 



Killiastdir is a must-have for CLImate 
owners, written by C LI mate's authors. 
To speed up directory access, it creates 
a small file in each directory on a disk 
which contains the information about 
the files. Some CLImate owners don't 
like all the "fastdir" files, though, so 
this program removes them all, from 
each directory. 

The LaceWB program changes between 
interlace and non-intcrlace Workbench. 
Previously, you were forced to reboot 
after changing Preferences to an 
interlaced screen. This program flips 
between the normal and extended 
screen heights. 

PW_Utility is a shareware utility for 
ProWrite users that changes margin 
settings and font types. Guru is a CLI 
program that prints out probable 
causes for Guru mediations; C source 
is included. DiskWipe, the latest from 
the Software Distillery, removes files 
from directories or disk drives, much 
faster than "delete." Snow is an 
AmigaBasic program that makes 
snowflake designs. Mlist is a mailing 
list database. This disk also has a 
Softball statistics program to maintain 
records for a team. 

Dodge is a short Modula-2 program 
which moves the Workbench screen 
around after a period of time, pre- 
sumably to prevent the edges of your 
monitor screen from burning out. 



Disk 26 

At press time, a package arrived with 
Todor Fay's SoundScape module code 
from his Amazing Computing articles. 
The source to Echo, Chord, TX, and 
VU is included. The Lattice and Manx 
C source code is here, along with the 
executable modules. AMICUS 26 also 
includes Fay's ImagcMaker program, 
an interesting tool which edits Image 
structures for C. It loads and saves C 
code directly. 

Claz2 is an update of the program 
which converts IFF images to Post- 
Script files for printing on laser 



printers that understand particular 
page description language. SDBackup 
is a hard disk backup program with 
Lempel-Ziv compression to reduce the 
necessary number of disks. TCB 
prints information about tasks and 
processes in the system; assembler 
source is included. 

FunBut lets a function key act like a 
rapid series of left mouse button 
events. The author says this program 
is great for winning Defender of the 
Crown. 

DC is a handy program for people 
who use an Amiga 1020 5 1/4 inch 
drive as an AmigaDOS floppy. DC is 
a Workbench program that sends a 
DiskChange signal to the operating 
system. Instead of typing "diskchange 
df2:" over and over again in the CLI, 
just click on the icon. C source is 
included. 

This disk also has a system configura- 
tion file that makes the screen wide 
enough to show 80 columns of text in 
the Scribble! word processor. Two 
programs are also included to move 
the Scribble! spelling dictionary to and 
from the RAM disk. 

Lexical analyzes a text file and gives 
the Gunning-Fog, Flesch, and Kincaid 
indices which measure readability. 
HexDump is a Modula-2 program to 
display memory locations in hexadeci- 
mal. Tartan is an AmigaBasic pro- 
gram to design Tartan plaids. DirMas- 
ter is a disk catalog program. 

BMP plays 8SVX sampled sounds in 
the background while something else 
is happening in the Amiga. The 
author suggests playing sampled 
sounds as your Amiga is booting, for 
example. 

This disk also has a collection of 
mouse pointers, along with a Work- 
bench program to display them in 
turn. A CLI program changes your 
pointer to a given pointer. 



118 Amazing Computing V3.1 ©198S 



New Fish 

Fred Fish has added disks 103 to 110 
to his collection. I must report that 
Fred Fish is a real person. I've talked 
to many Amiga owners who thought 
the name of this disk collection was an 
imaginative invention. 

Disk 103 contains: a C example of 

AVL trees, an efficient data structure 
technique for some applications; an 
RPN calculator; a C cross reference 
generator; DosKwik, a program that 
quickly saves and restores a RAM 
disk; IntuiDOS, an alternative Intuition 
interface to the CLI; and a text import 
utility for Microfiche Filer. 

Disk 104 contains a spreadsheet 
program called AnalytiCalc. It seems 
very powerful. AnalytiCalc supports 
large spreadsheets and has many 
functions found in most spreadsheet 
programs, as well as some unique 
features that make it more like an 
outline processor or a database pro- 
gram. C source is included, and the 
author plans other extensions to the 
program. 

Disk 105 has a number of assembly 
language programs for manipulating 
memory and CLI fools, some Ami- 
gaBasic programs for solving least 
squares problems, and a Freudian 
analysis program. Bison is a an 
update to compiler generator tool on 
disk 51. FlamKey password-protects 
your Amiga. If the correct password 
is not entered, the keyboard and 
mouse are locked out. Pere-et-Fils is 
an example of reentrant processes. 
Record and Replay arc updates to the 
mouse and keyboard recording 
programs on disk 95. 

Disk 106 has an update to the function 
key programmer from disk 89 and 
some IFF pictures. QuickFlix, a 
slideshow and animation program, and 
a game called RistiNolla arc included. 
RistiNolla resembles gomoku, if you 
know what that is. 

Disk 107 contains several FORTRAN 
programs. Two programs plot data on 
the screen, in two and three dimen- 



sions. Another program drills young 
people in multiplication skills. A 
program is also included to slowly 
copy a text file to the printer, in order 
to avoid overrunning its buffer. 
Another program provides an example 
of timing events. 

107 also includes a program to convert 
text files of numbers to Lattice UniCalc 
spreadsheet format, and tutorials on 
backing up hard disks using public 
domain utilities and ways to avoid 
interlace flicker. 

Disk 108 has MonlDCMP, a program 
to monitor IntuiMessages that pass 
through an IDCMP window. (If you 
haven't guessed, this is a programmer 
tool.) A program to calculate the 
characteristics of steam (useful for 
engineers) and Tek, an update to the 
Tektronix graphics terminal emulator 
on disk 52, are also included. 

Disk 109 has a new animation called 
"Machine" from VideoScape author 
Allen Hastings. Machine is a scene 
from a factory that makes Boing balls. 
This disk also has a CP/M simulator 
which, like the Transformer, interprets 
the machine language of a CP/M 
computer and pretends to run CP/M 
programs as if they were on a H-19 
terminal. 

UUpc is a series of programs that lets 
your Amiga function as a Usenet 
node. You can send and receive 
Usenet mail and news, including stuff 
from the ever-popular 
"comp.sys.amiga" area. This software 
may tempt people who would like 
Usenet to come to them, instead of 
them going to Usenet. Be forewarned, 
though: This program requires a bit 
of hackerish tinkering and cooperation 
with the administrators of a local Unix 
site. C source is included. 

Disk 110 has an update of the C 
compiler on disk 53 which generates 
assembler source code in Metacomco 
form. A public domain assembler, 
written in C, is provided on this disk, 
along with "blink," a freely distrib- 



utable linker. You need the 
"amiga.lib" from the Commodore 
developer kit in order to write com- 
plete Amiga programs, however. 



FAUG meeting 

In November, I attended my first 
FAUG meeting. FAUG stands for 
"First Amiga User Group." It is 
headquartered in the Silicon Valley 
area where the Amiga was born, and 
meetings are now held in the Hyatt 
Hotel in Palo Alto, California. On 
December 1, FAUG will hold its 
second anniversary meeting. A cash 
bar is available in case the speakers 
are boring. 

(I retain the belief that the AMICUS 
Network was formed before the First 
Amiga User Group, but I've never 
challenged its name. Of course, I 
might not win the argument, consider- 
ing that the AMICUS Network has 
never held a meeting, and no one, not 
even me, will admit to being a group 
officer.) 

Average FAUC attendance is about 
500. On the way to the hotel, I 
spotted several Amiga bumperstickers 
at the intersection in front of the hotel. 
Can you imagine traffic and parking 
problems because of a user group 
meeting? 

The speakers at FAUG are rarely 
boring. In fact, FAUG group leaders 
complain that they are having a hard 
time impressing the group, because 
most Amiga notables have already 
spoken at the meetings. They don't 
know what to do for the anniversary 
meeting because the users have seen it 
all. 

There were many familiar faces in the 
crowd. Dan Silva, author of Deluxe 
Paint, many of the original Los Gatos 
Amiga people — from Jay Miner on 
down — and many current Amiga 
developers wore present. I spotted at 
least a dozen developers, which is 
more than I've seen at some trade 

(continued) 



Amazing Computing V3.1 ©1988 



119 



shows. Allen Hastings brought along 
videotapes of his latest VideoScape 
animations. 



Politics and Problems 

At COMDEX, I thought Commodore 
was playing a silly definition game. 
In later discussions, one topic reigned 
supreme: the high resolution monitor 
and the 68020 card. The question was, 
"Did Commodore announce products, 
or was it just showing them?" The 
answer measures Commodore's 
adherence to a policy decision. This 
decision promised to prevent the 
unpleasant reaction when products arc 
announced too far in advance of actual 
shipment. 

When Commodore showed the 
Sidecar, A500, and A2000 well in 
advance, some dealers complained. 
Many people heard about the new 
hardware or read "product previews" 
in magazines and came to dealers 
expecting to purchase the new com- 
puters. When the dealers told custom- 
ers the computers were not shipping, 
some felt misled. Dealers do not like 
unhappy customers, particularly if the 
customers are unhappy about some- 
thing Commodore did. Word about 
unhappy customers trickled back to 
Commodore, and they came up with a 
solution and revealed it at the next 
show: They would not announce 
products before they were ready to 
ship. 

The silly game comes down to the 

difference between "announcing" and 
"showing" a product. When Commo- 
dore shows a device, but says little 
about it, is it an announcement? Is it 
only an announcement when a ship 
date is included? 

Without any official statement regard- 
ing a new device, no one can spread 
more than a rumor. If you can say 
you "saw it at COMDEX, in the 
Commodore booth," stories gain 
credibility. If you can only say "I 
heard it somewhere," stories arc taken 
as just that — only stories. 



Very little information was supplied at 
COMDEX regarding the high resolu- 
tion monitor and the 68020 card. 
There was no mention of these things 
in the press releases, and there were 
no flyers. 

With no official information, misinfor- 
mation reigns. Before I checked my 
sources, I had some serious misconcep- 
tions about the high resolution system. 
A source who should have been 
reliable told me the card was for the 
Amiga 2000. In truth, it is a special 
monitor coupled with software 
running on any Amiga system. 

I tend to think little was accomplished 
by the lack of information about the 
new products. The word will get back 
to the same people who waited for 
Live!, the Sidecar, A500, and A200O. 
They may complain just as much — 
unless the products appear soon. 



Booth Space 

At COMDEX, Infinity Software was 
asked not to show Shakespeare (their 
desktop publishing program) because 
Gold Disk was showing Professional 
Page. CSA was not allowed to exhibit 
in the Commodore booth because their 
68020 products would draw attention 
away from Commodore's own 68020 
board. I had visions of CSA represen- 
tatives being turned away on the show 
floor, arms full of product boxes. 

Booth space is premium at any show. 
Commodore must decide who can 
display in their booth. In a 75 foot 
square booth, there is no room for 
duplication. It is a very cut-and-dried 
process — one or two desktop pro- 
grams, one spreadsheet, one CAD 
program, one or two video products, 
and a few games. 

The situation is scary, given the 
previously cordial relations between 
Commodore and CSA. Commodore 
always welcomed CSA into their 
booths. The action against CSA may 
frighten other vendors. 



When dealing with any outsider, 
Commodore must be necessarily tight- 
lipped about research. Unfortunately, 
they are just as tight-lipped with 
information for third-party developers. 
The situation is potentially tense when 
the Commodore product in develop- 
ment is similar to a product from a 
third-party developer. The third-party 
developers' perspective is easy to 
imagine. Why is Commodore nosing 
in on territory the developers consider 
theirs? Why should the parent 
computer company compete with 
third-party developers? 

Sculley on Developers 

I have wanted to use the following 
quote for several months. It seems 
particularly appropriate in tight of the 
incidents at COMDEX. The quote is 
from John Sculley, CEO of Apple 
Computer, in the September 1987 issue 
of Playboy magazine. Sculley has been 
interviewed recently in dozens of 
publications to promote his latest 
book. I don't agree with all of his 
ideas, but this quote rings true, 
especially when considered as advice 
to Commodore. At this point in the 
interview, Sculley is discussing the 
informal network of business people 
that surrounds any large company. 

"What I've discovered — and I hadn't 
known this until I came to Apple— is 
that third-wave companies are totally 
dependent upon the network of third- 
party companies they can build 
around them. This allows us to think 
of our personal computers as plat- 
forms on which others can go and in- 
novate; and in fact, our experience is 
that the best innovation has not been 
done by us but by outsiders. 

"We didn't invent VisiCalc, as you 
know. IBM didn't invent Lotus 1-2-3. 
We didn't invent Pagemakcr. Those 
were all done by entrepreneurs... The 
impact on almost any market that 
Apple has been in has been caused by 
a network of resellers or a network of 
enthusiasts or a network of developers 
who are doing things with the plat- 
form technologies that Apple creates." 

•AC- 



120 Amazing Computing V3.1 ©1988 



The AMICUS & Fred Fish 
Public Domain Software Library 

This software is collected from user groups and electronic bulletin boards around the nation. Each Amicus disk is nearly full, 
and is fully accessible from the Workbench. If source code is provided for any program, then Ihe executable version is also 
present. This means that you don't need the C compiler to run these programs. An exception is granted for those programs 
only of use to people who own a C compiler. 

The Fred Fish disk are collected by Mr. Fred Fish., a good and active friend of the Amiga, 

Mote; Each description line beiow may include something like "S-O-E-O". which Elands lor 'source, objecl file, executable and d ecumenist ion". Any combination of these letiers indicate* 
what forms of Ihe program are present. Basic programs are presented entirely In source code formal. 



amcus BM \ 

ABiise pfDjfin 
JOSS H 

Boas 
Over 

FSCKM 

Hooert 

JHO 

Ootea 
PufflBoa 
S-.Ze 
SpaceArt 



: Graphite 
3d ',-, z'> modeling yv; *4anpia 
aaata 
at tut OJttkt 

cirt p-c-'es-n r« eye o'tXt' 

i'i« **bhjJ landacapM 

30 d-awn* program, wf riddan Ire 

removal 

amp* pa ret prog re* 

Craw v-<y i optica! ..: or* 

BinptB pan: prog ram 

arews raShuM irt 3d wrafiama 



&ptv* 
SO'H 

TtrseDM 
Tepograiry 
W"«ls 
Xanos 



ipwch ytfity 



draws color ipfi!t 

3d ".- — :- pan 
- n V": ■:::■; '--■ 

prows a'ceg'soTcs 

;■-.-.- -:-i::firT^ 
ABulc programe: Tcnlt 

Aoow*£«ae* fc-o* deaoeJB program for a 
CanJFte atrpw PMd 1 ■ ■Sa ff ab aw pBgf 

Oama "jw^uxia^a 

KeyCodae tnowtlerycotofaril^ygvprBai 

Uamu rwr miry ABaac program* from a menu 

'.'; '•& .-"* way a geimaracooraonTa tt i **ti 

etortst. usng s:ssng 
f*w tamp** ca'o' "2 -e Qeagnar SewUi 

wwer ana n»ra»r demo 
ABulc programe: Gimte 
&*cKX! cistcc3rrp J B'b'ci<wi l 5ir* 

CTe J i to «.- :w B "go* 

Soelng ivmp* axng tpe nggare 

T:i5:i i#*CiSe ■^arcsee^e 

ABuie program*: Soynfra 

HAJJSSO pMUltin anatcompuB' 

P)a I -:<? x ssr &-..-; 

>jjrp^- sTfiT-e r>ar*« s'r*Sv5J'c*j- 

Fbim* 
C programe: 
ATem 



Doty 
etfio* 

FaDs» 
frMdrfcv 
GVMm 
Gap 

CXI 

EMZArci 

Mind* 

ofcjti 



i-t-p* ■ti!*! prograr, S£ 

I fl B '■ — -.-- M31 L .i~j;ti C 

oppwfc erf COHORT *=» crajj 

dwCopen 

thJfOIC40»Ut»»U«ff wnflowderno 

uno>styl* filename wpanaion. partjai S ,0-P 

eirprantusa of fan-floating pant mati 

^i«Mj'8ta»S0iiSf*4ion ida<. S-E 

cmp» MfefttMdl (frawng prog ,S-£ 

graphic T»fTS07 usage jndesa*, S-E 

wrirr', feragi**l 11 ng .- ■ *"* f- 

h pn iheM off P* hoid-and-m odrfy 

merriod of color ge-nerason 

'IS OS 'J'* C4=rt TSnsVi tw>»er 

*- 6M i-c *- Am^a 

Marxab'OT HBtoroy*^, S€ 

pa»r^g'#ncdamrj.S-€ 

maae* Late* C sec'* r,'-« s 

lHM»to WiotS-E 

qjc.. nrl 5T--55 routine 

*urrp<* m -;* MTlft* TO 

■■-■: on -rf- .-«->:- mods, S-E 



epwU 


■: i-^M 5'ay e M~j. S-E 


04iv nKulafar* prognnii; 


Spwc*Ts¥ 


KpMds oen on Ufa 


W^g-Fot 


C S> »yS k ffi-a *>• ten 


Ttm: 




U029 


crK-^K?: cmkp tnvt) hn C'J 


Mtm 


eoii-i jesD'rfl*S&'GNc>--i'<: 


Iubj 


know Dug <« *i Lcm* C 1 02 


CUCHd 


ftte-e-CTnri *:-*,- 5 bDOSCU 


COCfl-i-nd 


; -- :: --. tMi 


C*"iKl 


poW 5 job a An $jOO& 




CiJ ea^Tiflej 


EoCofr-andj 


g^d*»n)ED«<%)r 


Fi»-*-«: 


A,™i9aDOS 1«rar e « cere 




conwriara 


HtfB^M 


ei^ i -s rsa jiTrs cfyM -j- cir- rj 




P«3r» colors 


Mocuwpri 


ottcfiMon of trusts* ; pdipnaul 


RMIeMi 


tpt 3- teSng up ys. ■ RAW On. 


notMM 


Bp* on usng AOWWadt 


Scurtit 


frxtfmRon o* htrjTwn; ootio wu"d 




P»fa^« 


Epood nbVjBRet Amga'sCPU *V a*ft"n dip tpMd 


W*txCnfl( 


■-55 ;■ -s.--: rt:? 



CBrugruni: 

■<b Am^BDOSpt^ttirvirrr^Bjtr.Sre 

pr IHlt^irchnwpKigrirr.S-E 

tiobg ■u-j-tr&onuKSj'j&ei in* 

tr* ;.-a(Clli'» f>E 

«■..-•«.: *«> ci-^frv, :- r/-:j"i-% r,h 

Yttfiic ihnlirgMM, S€ 

Mike ■*p*p»' , miM'p'9ginm'f*j b(SlTf h S£ 

Ainrnblar programi; 
btwehjsr o - vy mrcn cod* 

qtvtaim UnxcompitOo cws) turcion, huto 

•Ns c *fl pngwn 
■t^np.um t*qmp(]ieaMlW Li!*d»3 02 

:■>.■>'■;' U ' I lyir>- V ru- p.V.Kr- .r r * ) 

t«M.a Un-j| coTiOit&o r«{] tjicsn, 0-0 

(Thid:Abniar^hidi^apHlcilBnf4ttr<dfurnp>tiSriet 

r t lp«e It c--rjr?y updatod. 7w FF bxk f '« haw tje«n 

rrw«l -.a £*» wit flw in rr AUCUS ol*cy- 1 

John Dnpw Amtcji Tutorltla: 

ArvJOB dtic &ai ar^-a^on ago'if^^i 

GMJ»S Ifarm fin Qtog>n 

M*^ jt ♦!- llMul k"- !:* fnmut 

JUBttttttl 

C srog'i ~ t: 

>.•? iCcTis ■rt'»-<3» ge- S E 

6&tao- aara-rai'trcrTTcnip pi Orrg. &-€ 

0>»p Svrcni|cr«pjl«t4»piU»J9, S€ 

Geanup rtrovn rra.'^t cuteara tram ■*! |i«t 

CR2LF ccrw^s carnaoa nr2jra a i-« tods r 

Efttf adCico-D-flff-ci .s i .Cf«, S 

Htlo ■r/-:-.r.-c --- tt ->-u '■- 

Kam**B ga^'cKrrni;>'rpMK t «itf9ar, ftuy. 

ng la-rrtJmMtB.S-l; 
ScaiH iOundlM^Qpil)nlKll«l, S€ 

S-<w9 Ft/tn.Cjt*d*mo nhi-« crto-i, S-E 

Ami giBa* tP» MJ 1(4 rj 

C*-i*-y£ y i card c,i-« 

Grapri *,- r ;" ys->-; pregrmt 

Wt"";H;.' ■ 5 jt* 

("■' 1* :'; ::'■:, ,'1-1. 

Caano gi-ai a' £>&«■'. l> k:\iol. oc*. rccn» 

Go^Ku ■uXPQiwnia'otiaio' 

Stbosget i#i s( in acMnLm gm 

Eitcutab It prog rami: 

Dnnvn 1 6d38Cd>tais*mU«r, E-D 

DpSoe 5--jw- a giu«n tat ot FF ?«.■«. E -Q 

Arranga afcnlsrjrmattmgpr&gri.'n, E-0 

AaHmbiirpregrimi: 

A/gown Mfimnal program wr aaaacfi and Xmodam. 

M 

AHCU3 Prt 4 Flu. trom til orlgiul Amiga 

Ti=n ci car BBS 
Hck) r-rt aonv ]'rw»!« i-f- 1 c i--: **»- a 04V .*"; ;- ■ ;■ 

f* epn*>g ryrwr. t^«i «c*-(f* , yir*Sj n fyt»-. rr 
■>fr« M Arga IWineaJ lupponMOtarfiiiSEof IMtl Treaa 
■i*i« -3*. a-ry mri"^. md H te •tfuCiSor'l pupOMi 
J" f O^cOjrtB.tmfirvTUtayiriayODi'IworiL 

CoTpttto and naarly u p-3-oa» C Kli/a to '"igt.iKf. an H'Y 

wiJis'-Dt^Ent' Triail liiMllJcy.butcdrnpitif a,nc 
runt. 

An l%:--}"C^3, "fj Cj),^, MuDtoQVHI oamwrafiu-t 
dtniomanb2.c, ddmortqe, gniciLd, oj-jc. oan'iagijd*. 
Oa- a -lie. idamaaK h, nodQac. and aciic 



■MJmen.c 


s;:tiy-j-r-yy^n>5yns- 


DobH:c 


*ii'D*i'E(Ce .* 


conoaDr 


=:- k o D (ir:i 


CM5C.C 


cvalB a,nd 0**1* pprti 


tnaatfir 


Ottaj BMHri tOrtqutn 


atfu^c 


0*Krg i»ru-jr. 


au-at 


ei-3t:^i:(-r4:i-c*-» 


dorfc 


Lam S N Usty wneWfla^o 


ClS'lfC 


o-.a 5 a r*« • ii' 5* 


'.X( 


!«d tit Hnpk 


Iwarrapc 


a:*t3ij l >M-jD' 


ga%«i|£ 


sm a tar VtjPHH re BOBa 


iptimara^ 


grave "*"yy-Jagr *4caw 


Wot 


w-xtew na-s* from PKJJ 


tnfMkMV.C 


•Mng Hi input ntnd *r a t» mpui ae»m 


joy(S*.c 


rvading nfljajriKk 


kaybde 


di'acl Ivrybaa4 vadmg 


layarfcrtc 


lajrara*unip«|: 


monpotc 


tetn^ouBiporT 


owrtiac; 




tw - 3 Blffl 


MAfNI of m*,-ng nkj) mn lifirtry wfi LilK* 


p»-t«".c 


tKts pa-a* pon; os-'"i*ici 



SeSaria .c 

■rgpJayc 

iDMcnBy.c 

iT«doly.c 

imsr.c 

ImiELlc 

WhtftFunLc 



donaoelOM 
gtfttgnLH 

npuuv.u 



Briftttc ten pp^i pylcy-Tflrw 

Bntarpc ti*-&i* a'w i dc: _->? 

prrinre si-sn prrmv ifMrtaa cod* 

p«t)«M h pr -sr dnoca Df'itc-i 

FBYnlBa.c F»9on tofl prpgiam. 

HltCdjC KJiTO* H i-TFllCt on/of! progtm 

■rltH asftwtoiof rm pvHMport 
■t! na arj a-*i (par ■■y, dakrEBtiJar! Tie 
■ngi« pJayiflld «vrp>« 

wye**" -i"!"' j"c phennaaemo 
■rppl#WafOfnfl: 
*x«C luppOrtBmerfLncSora 
mo-aaacwppont.mw (vincJona 
igaAandospJaytalavaiRD4tys > tom tank 
proc«f ai and prDHLH.i as*.T«j c ra j6h \\m: 
Lfxt-QT* iii Mtmingt at dauioeka wr avuraquea&a 
wgy of In RKU cental* l<Qtrapv 
iwning ■-■ d'ft font loading bu£ 
Ian of fMfnaa. macna. '/r.rs 

pralirninarir coay SJ ?w rnpy* paves c-ir»' 

Lonw a«MBiafsaiM Wonibtnch ililliiaiii kenss 

prrw pre-raiatiaj eopgr 0' r« df-actr :- pnnJar dtrwx. ":- 
FMJ1.1 trll^.tfl ISifofSSiUcnangeiVjmwfitsnl.&ttl.l 
V^^1(*n , ti-TafirdJottiajot'ingejhjiTwrioriaa "E 
flagaflaU Fn^r-it-jiL-i 
A/Riga hlormaton Nrtwo/k 
hr*rs:i;-«:'r*j**«i-e;.c,i-c-*t-^;C«f rari-=-i;' 
raopa^av-gtystor T i -«e , «a , *T A-^iL. -f Fs-a-:-- 
Cor<rai3rt(ijpgorto3Arr 1 3*Lnl|.*BAH/y 5-.-*0tv« »c 
aNmeal aupport Kwuonyupanlrurv<f>gfDrifl^w%iiiee4J. 
tneae 'ts oa - :■: ear^r a warrarff . a.t) Bra br cducaEanBt pur- 
pesatnrTr. Ofcour»a,tnftTi5!B ByTwydoriwortL 
ABtmoo) IrrtiiUonifltflua calid minudamo'.ln Cteurc* 
wnaraiLc |npj a B* anrcting ar MbolMblfM 

boovr.c BOS p 55*4-- % ti b- &♦ 

a«*»s urt tyitiat>iaaampi« 

ABtambirllBa: 

- y&flv *1- ta-D* oe«wa B- «* 

ryia.aar: BB.T.pailOna'yfiarpia 

tnydavj 
■naaajaJ 

PJCfPl,! taW" 6^ inQjoa f h 

Thu: 

■rigancka iwonaic^^anda 

«cb anrmi en ipw*ca»n 

gamaport ga.T«ponapK 

paratal pa-a * pan; kxc 

■jc-i ivnaipwiapcc 

v!.1updiB [ctofrtaMMBUaaifivarfean 11 

vl.1h.Da ^ffpfiri^>»l^c^r^BW*y»ftiwi 

'■k -.■ rr. a -q your wi frinv dnwa, nxfud'^ c i:.y.<:-. c, 

tptartOLc, r\ttr primer .c, pvnw.lnl^ o-nr-lag istt, 

rtfc*.c,s , ifl»»Bi"»n Tn»d*daticonttJnartjnioBfaff*B'i 

dwcr&pfl thai FF tpftafcatoi Th«* art no*, ft* latott and 

p/Hi«si flta, Bui f*-i*i ha-» (or rvatorcal purpostB Thay 

Mjd*a)iltiaa*ndCimn*wr*piH Tna jwr FF b*c( 

AHCUSamB IFF Pi ^-« 

Thi 1 o ft rcuden tv OPS kc* prpgr bt . MB Icfi GBn v«w a g^van 
■atoiai FFpctrtt, and tw Vawc^ffograpi.iirtdhicjri v**r 
»;-'*i:r*tci:'rcr 1>«pcLra'iTidjdaaKTa«i'ro*r 
AncFoi. a Degaa ettnear, feguyia: Ekts-cA^. agontia, 
"cses.K .ng T j", 1 i^tauaa, aacwn^am Ua*M UadrMa.tha 
Bugl Bunny M.-.-r, a i&ll frgm an gld mow. tu Pr* SnitI 
movrng ea-Npany, a acraan from F%M Contuaon Srt. a TV 

ne«ar»-'. tv fa -Ca-. a world ffflC, B Pi^xne, 1 B*UCM 
-:»o" path, a TyannoHurui nai, a par>« »**. a VtSA card, 
and a fri-tpaad 

AMICUS Pah 7 Dfgmtw HAM demo pic^ra dw 

T~ s dm hu :c-_'« from r* D : *'** -: s -•-c-~:ic v ■■■>■■-'' 

prt. W oaidoa'. fta ho-aa- and pi^ny. ?» f ,-* ~ .-■ -... 
cc?-»rypig#.r»'Mrtar>3B0Mr; Tnjj ncjdHB U'oyBr a 
waweao'pt^rttec^ia^.anda'SsgaT^aaaaoarasB.aidBew 
aeraara. W "**&-■ program, a llD ary ppaan ra a- Ff 
Btdkaaji 

C prog rami; 

EfrOMtt waw *rt fitt : - b c s«. uasng m«nj( S-E -Q 

Ow "anfowtcomnena BPC^PttiOBf* 

*s- C'«, S-E 
fcanEcae EXECUTE a s*r« c'a — a.-c« 

from Wornbench S^ 
FOScrwn Dj-d djnpt Piais»n sf nqnae jcrw" a p/ima* 
SrAl»ri» ataaaecaaidinagtforaricon. 

wrr c 0-1*3 on» S-E 
SoWnfjow maAeiwndtaMfof aO-lpograffl 

B rjn under Wnrxaancft S-E 
SntiCbcx 1 epibP c ; jx oottn a wrxtow -*% bar 
Scrmpar t» acratn pnfiar in nt buTi AC S-E 



Amiga BbbIc Progrima: 

[Np«; Uary D f T>*» p^jg-api are prfjenl on AMCUS 

tH» 1 . S»^'i of n«w war* cenvanap d Amga Btac 

and B't included har*.| 

AddtieSook a B"&«BM'#BD«*orjoaia! 

Bail dram, aba 

Coad d/^'3- t3cp-vw-;r>rrxpfv*f*« 

t rt a bravy, S D 
Ct* rn;3-e. h'-^-C"*- 

ColwArt ar1dnir*ngprog'im 

OfljiBLVBM tw Orewng program .n r* 3'0 AC, S-P 
Ekta co^wtam'uicompuBf psyifoiogui 

Or*o tie gin*, at kruwri is ga' 

RatMlA 30 raSnaa game 

ROfl ijoggjir^grapncaoamo 

ShotBt draMaX}DO/«aof Dvapaoe viurtie 

Spading ample spelling program 

VsVp ward raro-grawjy yoyo damo. tacka 

ys-ya a tw mouao 
Eatcumala pngrarna: 

JTfcj&e UodJa-Sdamoo^irAlngeubB 

A-fcon ana 1 ico-c con image, e toayM 

#»-recric(?8: 
»- ;i. r <- is:*x:j-&»55> c-aor.ED 

arc r+APC^ts^oataanci^o-i 

muBl-hayt for Hom, E-0 
BMRahfl g» ary>c 1 w* 3 

d<aHBivag« »ag araatuaYBtnadaaiuvE-D 
Km^Capy iguMOMpanatiyd'aacepy 

program: gnsnaj from, E-0 
LDOr in nunkj " a- QCjaCfM E-0 

SivelBU tavai any acrasn at FFpcE-O^ 

ScwOj-d anBrawara teraen djmp prog. E orty 
Sk'Ten^i Mtriion J 3, ami program, XmofltmE-D 

Tert: 

Lar.crtlnfl tpa on ling _majru m LaPrca 
D 1*. O m m#* y ^ - w, - 5 1 t r * 

Qtf-uMad espamtFwQj-jrijm&art: 

La^OSbugs aug f ^LnaC-ii- j:j 
UForgeHav m*r"i v>w d'tb hUroFarge HO 
Pn"£paa«r EXECUTE-baaad pnn: Epool prog. 
■Wafer 

Thaw era) Pe n«oaa«ary inkj »»«f A-^a Base and Tt 
■ytavrlbraierf Taa^aad'ri-jigta^aA-igaicapas \*t 
aiBM^yftj need: Jew (a* BUAPiere-nrA-rtciforid^ 
'conaoifj', >3«idonf, 'nK\ tayi", irttilon', leyarB', mafhnp', 
maTtaHjeoouDu', 'ffapiaae tr gDia'. ra-rra-i'. "p.-^:', 
"lmehr' ino mrtiJeasr'. 
AUCWPlfel 
Amlgi Daak Programti 
FkgnflSn anir^licntpmufatorofogriim 

HjaPvtTto (woanf Kit. SaUiffJOP, MTflV 

Requeato- ea. of nouaaierifram Amga Bead 

Sws r>~3 damonaaim mNtBQ capab'ima 
Synrewax Bound prog 'am 
Wi'cMap draMra a rrap of tna MfU 

Eia-cuablB pragrama; 

Bang' lalBitBemg'dema.wTi aeacaoe ne*a,E 

BriTX oarwara an FF brjan a Cdaa 

niSTjcSna^ i^i^iSoricoO*. E 
B-jfl-itccr' eonwera FF ryu*n. a art «o/\ E 
Otzz* grapr*eaoan-a,=n»CMarnrjuaB, £ 

OsoGEL BjemtKf program forampp-ng 

SWiCarfft-vS-ED 
KlotA manv-ba/doca «nd r»c b> iy, E 

Idl toga -0 3' %. E 

Tm*S«t hljibon-pajediHayaietfatiTif S daa 

EMEmaca ara?w Emaca, r j-o orfanad u 

word pnjcaisng, S-E-0 

U*dl aaiat«t.woiuwtroui?« 

Wanoeooi, S€hO 
Taarei: 
FnerKayt laaaVnctonajayiihorr AmfjaBatC 

HaraaKSm •*naina'i9wa**n!*iegB-» bbbW 

btSHIO guoe a tir*ga6a£ - : -y-j^ A-^i 

Bong* MtotlBong dar-o.w* at^cmbvapaad. E 

Bruer-JC ennvaraan FF Brjan fc C dBJl 

rmrxwrn, ir*istliB»n cast, E 
BtfuBnae&ft ec-v*r3FF t'.if- s ar ca- E 
Pezaa r-ac-icaoe-j.ractj^-^je.E 

DaoOEl asjf Sfpn^jr *o'ia»ng 

£»■;*-?■(, SED 
Keot menu-M' doci and daa difplay.E 

Ida the game oTiita.E 

TmsSaR hti'Mrvbeaad way ts 1* r* *.-* dta, 

EMEmaca anotTfEmaca, m:»o"an»dte 

word pnMtiang, S-E-D 
MyCLI aCLIanel wDKaivWJtm 

Worx&arxj , S€-p 



For PDS orders, Please use form on page 128 



Amazing Computing V3.1 © 1988 121 



TE»] — 

Frfliltfey* 



dbcure-toiaranQ" C jnd n**-—b*» ic,roa ^r w-Jng yflyi own 
ifcrrea.nd TrrfiGngC 3 ***»-■■&*■ fi !&*■«. Wt urix 



h*£K1B 
SwkraXp 



■ 13 1-1 tow to reap *jv= d- Uyt 
(ram An 91 Bat) 

tipi-i-ew:: w-r*ga.-« v ic*'' 
5-Cj*j -s.3 ng 1 WC"3 - .-;." A- ;: 

1p* :- Wing j yg^f O10«q jence * * 

ustof Tf*-fbm* pfog**.mt tna: wart 
Printer I> id: 

Pwr»fdpym^t*C«noflPJ-T!«A.T*CtohPTnir»,« 1 
~a»av*o Epso- cnver rat * ~ nave iT*ak rg, J"* Ep« i 

Laaca.MGrrinSt&'-10 > NNECK2SA,MCXeiVUL- 
31 T* Pmajori* KX-Ptfla infy, i-xl re Smth-Coron* 
D3C0, wti 1 tiw-a'-*. wk p 5"5 re mtmt«son proatia. 
AMKtrS Dlak 1 P hKrwifflWAd damo* 
Tni it an co-i-Crvan derlo, aroilatod % mtny dnvi f. 
■ rv;:^«r»t^ncia J jr. Kbjecgjtor.analarm, tbJro, t 
Dili gurtar, 1 bo, ■"< a callopt, a car horn, cUvw, wear dnp, 
twe* icquU', 1 flu*. 1 harp arpejo. abdtdium, 1 mam be, 
a orgtn minor chord, peop* takrg, pgi. a pp* o"g*n. a 
fthodei p*no r n laaephorw. t inf. 1 vara drum, 1 ataal 
drun, bolls, a uibrophono, a vo n, awailrg guitar, ■ hvi4 
whrry, ardnv.-jLlo 
AMJCUSPIikTI 

C programi 

dfull hiwIoivbaied.CLI'epacerneni manager 

S-E 
cprl irtm mdtfiun picnic tfCLI 

P<rjc*t*»*. S-E 
pa Hows, nfrj an CLI prsceuea, S-E 

v-oaa d-ptyiCo!npjjianwFL£ p«.S-E 

ArgaB*s« programs 
pon-sead pons* andspraadtor pagfarn 

--- » SK-*JE3-ei »-!»*■ ■"■■*- AC«1M 

la^ra. an - rac ca enoi ', a i*y and 
en &aok pn>a/i~ 

cr.rtri FF or^vwir. ArgaflaK 

B06 OBJECTS 

caw nd play aw w jf jt M 

<j^aw»HDtfloi'VM 

rtc Ibttorygarwitor 

tak-5 r-«Lng istprogfri 

3Qg<ur« pngna, from A C 1 * anc* 

r an» Trawg oia-Tpa- iimi KM* 
■lot I ■" - :.rr- »;:.-• 

:c*jco* hegame 

mvi p*^n04k*c#m*j 

wan] makes aarAryttdurili 

EaKuabki programs 

cp una ■ •flw^' command, E 

dl v:;n.'' c <-'■■. S-E 

d* (.m-kasSean Bd-toruteaUT 

output to Ik lias 
pm cte^raea#d«parfDrfflanc«indcauir 

ABsambEgr pograms 



orutf'toBOS 



r^ea*.aw*3C 



dl 

Modult-Z 

Villi 

ctaeconvert 

Forti 

A'aym 



screen clear and CLI argumenti ium» 



moving -wry* oraphiuoamo 
eanwnj MHua-2 keywords to uppercase 
BfethohafiOrd* s'grrr Bii-pw 
l£WTipfalaihrtwtpft»fla-*w*t Anayw 
Tr*w« tour pfl>gramihw* that reed Commodore 64 
OCtraf'iBL T^cantnL^aSKHafvS.Dooctai.Ptinl 
SrwpwrtNWffiftw-nyapr.ca'&IFFbprt Gerangrn* 
Vm fram yevr C-6* D you' Angt klfa haiS pan 
AyCUHOwkU 
EwnjWM p-syi- 1 

Dink 'a -«.' cdmpjBBia tfkar, bui "ttw. EC 

c*t- »-irtciiib-cvcM'ai,e-0 

anoa Ef«n wnangt To PAfl Mm nia-*( E O 
«*wt - fipci " w»'ti t»tsr-aa E C 
stTvl-na.E-D 
j^Oflnavtl * *. E-D 
carers Appa V law. — «c j~i and 
r^pfftptfuraato r"F. E-0 
many ac E' p/od jcaa C mew fg> 
man-ja.E-0 
9 jc* c, c * dak-tarca* - roa mar, E-0 

qud£A cop« E«cw>cA/ad»nrap'c»i 

pf O W L a u n, E-0 



MdU 
C:'cg-i-i 
spii3 
papdt 



rojUtng otociti graprxi Cwt.i). S-E-0 
nan a new CLI at rn prefi of a 

bum. : <e Scwc S-E -D 

npTte V:> --! r^.i-;^ - X n., '■-- 

Conirodwa, S-E-D 
Anrigaj66S Anl0l BafcCftulttranbandpfog, S-D 

Aaiarnblir progrtfna 
atl'ID mukaa atar l»dalilw Star Trak 

irtro,SE-a 
PiSurft 

Mc-LfltMindeb'flr; JOwewaf Uandslbratirt 
Sv Detf oyer hi-rei Sa' Wat ittrihjp 



B»rt 
ThS 



'obdl arm gniobng a cyiftdv 



A-iflawnd&'t.na^ei, aOd-nwi 
*«« to ear y CaftEd ~ib-e"y bMnM 
OWt W hffj W I to C 'TiuOa Ha) 
0JM ta payng f» gr« w»H 
PawtytW own ahaa a- nowa lw H* 
K»Mo>acooaPa«, 
^ tKawniakij 
A-^aBai^pfira-i 

Roulma from C a-yr- ScreDO-*/ of C6U T*=n SVnort a 
tad i-ti ctspay IT pjcLtm "-an Angt Base Wr docj- 
mvnalsrL Altai ncboad 1 a ar 05-a- to do tcrwan pfr^a - 
A-^BaJ^t^t*-*i*cBUA?'i*i,wriC=- , »f><:C;- 
nr3FDpr?griri- W? idmeai pcsjwi,. and t* SawLBH 
V7»* ckvi y?jr 

Ra/tnaa e oad ax d jy Fjln&ovnd a-= FF k j-c * « 

from Am^t Baac. by Jartn FftiK tv Acq<m v j. 3-1 wr 



• Drag-art 
7f> 7 Sc A-e-JirSfig'ivJtr! grtc/>c 

jnJcan,S€-D 
Tea 
UQ4 maktiflj-own UOI ^U-^r>*rt JflarfwM, WP 

oocxrw'tilan and a r *#* acnemiK r>ci/e 
ritCgSpaJ(H 

Sev»nt p/agnani from Anting Cor piflng luiat: 
Taofa 

Dan Ka/ya C irucunt -at* pia^o/am, S-E-0 
Am igi Bat* p*tg dm 1 : 
BMAP F«idaf by T)m Jgna* 
FFB-\,f?SC6 byUlwSwnoar 
AutiRiiQveiw' axaTpie 
DOSh*!pw UnSoma h«p tynm *>■ O.I 

cos- nerd y S-E 4} 
rein-i tnrvin* PETASCMIlMto ASCII 

flets; S-E-D 
C Squaw) aapr^apogjaffifrom So«ntlc 

Afiwon, Sept 66, S-E-0 
orlf ad<lac/i«mavBtcarnagerebrnsfrom f'«. 

S-E-0 
dpoemde ddeTpa D^Laa Part, rtrtn 

'■« .. £—. • V-1-:-:- ED 

avaryWB uktYaiorNa fromtiauaer •eMrmftH 

coda. S-E 
vc V»-C*c tjpa Ky»«trwa - . no mouH conror. 

ED 
wear trwwt>ril*SN?HWDWBnd 

t -*■ gsacje*. E-0 

Ong, Sprsmg, ysBcrg, Zs ng a*e spv-based 
»:■> -5 Cfw derok, S-E-0 
CLCoat, aCocM. wCaca M DaWCM aorda'ciocja. S-E-0 

A-arx*J-i;of^-parttStn»&ndJearmaTito'i. :pt fir rakng 
il,l-Mi:*:<CJ.-ipn -Ot>ieP»-. j-c-w=--*tc f =* il- 
ea- /*B^aoaai i *T;Com'-sdor*-A/"^a. 

MfnflTMrl 

Tbl C prggnvna IndudK 

y I'epriTrg i.tlr/.wcican prn:lea.nr* 

5fcS " - rC - "^ * wT ' '"* ">-"■»■ J and comHJ 

era -actor n"anng. 
frn' ditpiayi 1 cnirt of r» aoaaalocaH 

onarJiA. 
"Aak" qua»3or»an teatju'l*. Pta/flian 

error code to co-rTal f-« Ijamjlan r. 

Staf r fr'-axtc veiy 0FA.TqjDDS 

Vs=,-a' command. 
■Dsso'-ve" ranoom-dotdiiw'vedemsd sCayi FF p>cve 

idwiy, dot by dot. m 1 random la&non. 
PopCLI? invoke nwv CLI wiittow Btlf» preuel 

a key. 
The executable programt Irtdudi: 
"Form* filt tormattTji prtffin ti'ough Tw 

pnntor driver to H«Kt prrrt V/m 
DuCc 1 cataiogtdtika, manutna, aont,mergei 

liito ot dak flet 
PS^jX' SonfliwjIf^rt'M'HfTpifld K^xl 

editor a rece'der 
Vonmaur' nawi icons bi m aat pTyaTi 
T'acaii' ori-^gTr *^ci' leaicBwand nanr 

afiipM, 
"SObVaaksjf JOgeta^.c^AbrfiH^ranewPme^di 
'.'V-geUerto 1 ' dapivtln sfopanllea, 
mamrjryywt, tofu. cwvxxn. and porto n uat. 
^j-yocs weon :' aiwDCi' ':■ re Anew. 
SiBer*' n^*feadi_ii*i5:apf*ae#-owf-ton 

nUoeUll 
Teita: 
toVLotf ei5a-*t4c*aawcja^c*s reCOH 

oevce 'Kacnci to 
THey 1 ncxea»-3iw vj'-atrg mmt E 

t* n r*;#r cr*ao s*re A-ga 

kaytBanl 
"Soawn - r/^imrraf^rioc,mertfrBmf^rrmodore 

A T -gi,'ee*cr-o*wayito -«re A-gii-j:au>,ngeacii&r:« 
myoi* ownpayaTt- 
Amlpifliifc progtarne: 

■G- Ci' oYawtound vrtvetarro, and hev ram payed. 

UgW 1 venaonofrt T«fl i-gnt-cyoavflao gar*. 

vguSi." I gam* of wjCaJnt 

■Stato' prcyon- to cacJato beSrtj >w^M 

Money ^toyabiii Ire bogtotmBneyfiityou ctri' 

AMICUS 15 133 include! two oeaLAfuC FFpcuTi otthe enemy 
imlieratrrOTr*«plli^LnS»fWtfl h ljndlpC^ 

]uggt*r' demo by E- cG'a h .an a robot .-ggc DSbncng 

tireemrfor*clbal», wifi»Lrvfl e1«c* Ttvemy-hjur time* of 

HiW 1- ii:sn a'o " dooc a^idiy *j p*jOjM t s. r-aga Y:j 

contoi ih* speed ofth* jugging. Tn< z.r z-\ cx.~ ir-m- 

hn-a tot P»« oregrim m*gnt lomeday be avu!it>e BtpncANl 

FFpldb^a* 

para**! of rm Cflvan [if A--ji Wortd and AmaBng Compuing 

magunat 
C progwniL 

>Tpvrar<*er* aiampeofmaki^aniJtt.'I'iandW. 
TFeZasT bfeMTf feeding pjogfn 

StawFwar daoay*FFpcL** 1 iMp f '^i '- 
t>- : pragrtn -0*1*1 and rBfrev** C 

trxvea rvj waokn fleee/ed n 

W Amg* rc^ce tesyjet-i. 
ElKVbaVl Progrima; 

m*way 

nt&mui 1 oanwjra u,«: StC 5 He» to FF ttorda<d 

"SUUS'farrii lr«v«^eA^?epn>grimn'g"i 
hav* 1 faw a-jgi, eu*a ay r -wji-ii to very 
■ong tongs, sjt : *a^i n - a: caws 

Usi «' A-51 verttan 3" r* Mat Commano* 

vtieoge^e. 



Thic A a'» coram sever aJ fteae' «w.roa fa* Ar-^t "c*: 
S-Jtt' Ll B/Sb7.-go**a l reseieve-*es3nt5a-i. ck. 
•Td.nserang * rT»dn« an* po^m-rgi jpeta cor"-i.-o r 
f/i 1 ga-ne. t n _,,- q^ c' n s^gng ocacori v* p-s«^ -o r* 
Fgn:S"-*ar'p r pg , am H Fa'taarp^ia^tceriraaacriys^ 
pllr* on Kcrrti. WM anj^W putoyoj r. Ce-am' Part 
AMCUSPakl? 

Tecer-mircalari d-»n*ixr rjo^aifi u »m-.nal pyogrm 
Xomm'VlJl toflnprog w^XmoOtm, WXmaoam. 
*ATe-rn* VT2 torn orog >n<iud*a Supw Karmr* 
VT-UBVU Oivw Wacser-s VT-lW ■mhldBr w* 

X.T0O*m,K*rmit, and icrDing 
•Am^a Kami* ViQ.«Cj pofl*rwUiiiC«*rr,t 
*VTek' V21t Teka-OPDC graprtci tormmal amj'ttor 

bawri^il^eVT-icrjprog. V^-Sandcoriimi 

latm isdfie rairpretbcn 
'ArTigaHoc* VD-iterCemputerve. hduoeiPJ-E 

grapr>cl abides & CIS-B Hi* tinkv protocol, 
fijJHunk* taptfiiiwmfmgryrwoetait!/ 

"FjOo" remoAigi'bafwcharicltitlrom 

modem received Ulei 
Tif lltotl toil lis* from other tyltomi 

to be read by the AmgaEC. 
'addmem' ejeec^abiewrsionforujewiti mem 

U parso n arod* m AC t£.1 
'arc' lledxumennonandabavdt^oni 

on un 'erc'ng f.iei 
'tfcf*' h- -i-e—9 Vc'*«FC 

AMCL-9 Oak 11 
Logo A-^ive'Bono" t^popJacoTovw- 

'■oguage, w r ni-j* pfogrjmi, E-0 
TvTetl D**-.a vereori 0+ w* TVT*n 

cr.tr ic* gtmentor 
PaoeSerkr F-eeYOirDj-iie vfso^si're jx.sk 

PbjbPM ina PtgefFF pragriri br n* 

:PagaS*a*f d**rtop pup:*Tg paciagt. 
MNUm I^aiM a?7 CUwWew -eng oTy 

Ctlear'm.mtt, E-O 
L*3d 3^> vweon of Co-hw V \ l Fl 

prog'tr, E-0 
Delaak CLi-t v s -b isva-i-ww 

iVortbancnOtk,S^-0 
Caencar WKS LsLt-corpcDewartreetreit -ws 



SaraXey Cera 0' taytttrd uy -e- 

prog'aT.Trar.w!?! FFpct.'* to 

WQ Voea paoarn gererittf fa* 

rirffjpg rr on rtart, E^O 

rP-lBC H»wrw«^ap^d-«ikee*ftil*»r. €-0 

Senprefi Charge me Pe%enc«eeQngs 

vt w fy, r\ C, S-E-D 

StarPioO* r^agram tW^SItoliravolirton 

C so*xc* -cm ■;' Amga and 
MS-DOS, 6- E-0 

ROT C wrsan trl Colin French't 

Ar ctflasc ROT p'Kj'in from 
Am wng Corpus ng, FCTedrtt 
and dtpays poyc;3nt to creeto 
rraadimenaonalob^ecta Up a 
2itTA-iotof a^nttartcan be 

Scat Lkelng, wMovjim waeflrun 

away from ?-* rojta. E-O 

DK Dectya'rwttlwridowintodi*:; 

it Uoov'a i E-E-D 
&op$haoow3 Ackft Jj*-K s-act3wj to 

VVortoancn M'MMWI, E-0 
AMCUSPakll 

T>iid»ica'^ti#vw'a , p07api*8-'- ArairtgCr-px^g Tn* 
FF>ci.-»i*'rio» -^joareA-garVtwDa^T*.*!': a--, 

itatotrHSjar-.-rM rig* 3* AndyGr*^ ffl *» A~<gi Lv* 

oa-n to-; rw Amarng Siyi eotooe r»: *n*« re 
Ar>^. 

Serve L-**'*c-**o- Over r ease— by 

largutgw, S-E-0 
Gaogeri Bryt-C*»r , i A'-^aBas.eaft-a. 

Ha.s**v d Bryan Caaayi Ar g*B«vc 

noy»efio«J rverary progmr, S-D 
WtvVorm Jm Sn«H'Wavenym Wowa* aiCa» c 5-0 

DtkLtt Jam Kar-an't Amgafiabd din 

Uynv a/tko/im. S-0 
SuOacfprx tow S - r 5 A-c. iBuc ejoecrp: 

Mi-as, 5-0 
Sfrg. Bodeari Cpjgransand wecutoijejfor 

Hannn lleybeck Toiyi hL : j- 

kjlonift, S-E-D 
SknnyC Bo b Ffcer*' am ilia *mp** for 

mak nrj srn i C p-ag-trs, S-E-D 
COMALh Mat* C look hi COMAL *aa*r f:t, 

EmtciKey Makes Emica Vet on key 

wlniiona by Orag Douglas., S-D 
AMon 1.1 Snrjapan jystom resource uM< £-0 

BTE Baut Tie t"J r orB' editor. E-D 

Sm CLIp-jij'sr wwirti.tc'i 

given MM of fce, E-0 
IMnSij* CLI r»ndow jr > rniei even: 

wndow.SC -0 
AMCiflDlahtt 

Ctf- pecar, Obcpo* Save Me?* 1 Am^aBaec twci, S-D 
BooEd BOB and tprs edtor *■ ae- fc C.S-E -0 

Sor vuinrit So"* atfbr md an -na' by On K*%-. E-0 
BIB 5:f'r:eo;T" Cprag'ir 

byTsrriiRx>ot.S-EO 
FrV r-a^rjrrxBjjngpregrar by Bop BufcMorJt 

andsaHa FF ""acjei, otBBQM r-c - * r 

wnwal Wncjn, ED 
Bar*,- Corp*to ihgr« Baring crag'* - . 

sa ance y35,'c-r*c*5o E-D 
mn» Cc-io* devc* car a crag-e- wr t_coc - 15 

micro ■;.'.-!", 
frstrraai CnMtoa a viual d-agrvr of free ~v- &■< 

npulcker »rp»rp,intr<*a'. ?apt «ry ar 

mxie r.~-- 



raytlCi SrtowsihowtoialLVlYgrtvpa-tdevcvii 

ijoyCct, 
kayuord o*rxtri«[t"ec:cor- >-ea 

israwn re neyMifl 
t/t-% Srows -_h r 1 r* tye-ttSnvy 

-andea^t FTUj'vierjratprJCfam 

tvm fiooki ^0 -ouiB to r^Tjaynckpar; 

5-1* wtcow CS-4S*«r-e-;*t>T-j 
paree- Damantrtwt accne to ti* para'ei per*, 

prrtor opanng a-d ,a-gr# ?r* doe* I tcrae" 

db/tp,rotwor<ng 
pTT.tjppon Prrtor s. »:.■: rau!f*a, no: wo^ng 
p/9Csest sample pnadtts reals- cod*, rot waiting 

regon Otomoa ipitdrawrfl tq gns 

Mrrpkjropr; ■fljoti bflMR fib on Cf**y^ yOu'Own 

sav* Drjmoa?es*relport 

1 ng^i/pd C"Mfcs 3K X K: pi^e-d 
tptecntoy tetottveraon olnjwipserricktTo 

t^««c>ipano irptfiedvffunof tpeechuyiMtiO 

requeia 
mtOemo (dtdltyt avoJaUe lontt 

Girnl demos. Jrrer Service uar 

trnckd^sK demos ^akodiA'privef 

AMJCU3DHVJ1 
Targe: Makn eaci mouse dek laund ik* 1 

gunthot. S-E-D 
Sand Smpte ,- me of tand ri' 'siw tna 

rout* porttof. E-D 
ProaGadgat rtarr* Utyteck Tory^ poortori 

gadge:*iarr>e, S-E 
Ehfl Cr*oi.t^s** , v^ K " v *«^ > « ,1 ='S - : 

grapnci, S-E-D 
Pano S.rp*pinB tfcntf Bn>7ar 

CBSc-pi Maftti oe i-i-iis- Kfipa^arAegis 

An^asr. - A-^aBe*c 

Tni to m rat e e c j a nc camagi In AMICUS dm t to 20 

•ndFrOJM 1 aBl T-*y Itrmr: wr r*OwCa! 
proo/im. ncypad h*». 

"«ua-rjtek3? 

CyCH L^-cyc-ci-* EC 

SrowPrr'J Vwwi and p"to FF CKVa*. mo^d ng 

1*3* ra- cee^ 
PrOrvG*nl3 iLl*K*-Jaan 3* iff/i***verg*rerit- 
*.--i!--i VdesScaD* tnriba-t af panat a-vj 

nc - ; 01 
OrOtn Makes * ac* g* r oe"*cipei 

BaacSo'to Eia-pese'a'*iryMfCi ana rse-io- 

■a-t in Ar-KgaBuc 

An AM CUS o sk compewy Oedcnied M m Jie on t» 

Amiga Tnia.sk conaamtwo r-uac 

pinyeri. aorgi, iniS-jTento, and payersto 

Png re Tirtl of paying Sg Soi/w" on 

yojAn^ga 
hSIrunWia ied'ecfjon Of 25 insUumento far poyng 

and creatng mute Thectfiectionranoei 

from Cannon Ic Maimbl 
Lltt H5TR pogrim to rsttnerrsTrjmentiDMCSwil 

not load iswel nlfirnaane/'iatof any 

■nssurwit 
Mute tcolecton pf U Ci','.a pioe> 

'ei2CSef-j'« The ^-r^cHsu bat,**ca j 'aeij 

wr Cenrort 
Three Angi M..« Pliyeys: 

SMUSPay 

Huac&j-SSMUS 

MutH£-^os2SMLrS 



ftsrf frift Public Oman Scftwait 

FradFl^nafcl: 

a-c*c*-a GraortaJ rj*n<r'"a^ b'car pa— g 
ar^tt 

ar^atorr arc* carrj-wata-a. prag-m mf 

aula ■-;,#•»'• fl*T» *i**5cr!tgy ar &*•* 

ar sr-ca 

cdtrU Sf , ows3r^aeo , >^irj.irv"-rooyr W je 

rjivyiane l>ry^Qr«ben<rmifi, prog-am. 

dotty Sftj'te to r* "dcry wndow'damo 

on Tnt Won; oench 4 Ik. 
freeoraw A jmil-pw-f ryo* program wp lr*a. 

bdi*s\*ti 
gad Jam O'lpe^t Gadget *,tora paiorim 

gbimem Guor ca rremoy usoged sp'ar ?5 9 

riajforif* OeMorisSitol'Erta-Hef-B'to'mrjde. 

rf youJilvert 
twlla emfjltwndovvdemo 

Sirflp pcceis^g fne Mnsa-oin Fast Poitng 

Pomtlirjrary r>smC 
palets Sampi*p'i>g vad*»gpnBlw paJMn 

tKkdisk DMOOtf/jM use of r»*/ac*iditkflrive/. 

■requMSen >3ivD'Bpe , 'irequ*swr£jTorii( ana 

exampe pog*am. 
ip**ch Sarnjsa ia*sch d»ro prograT, 

Sppced oown 'ttMt&bf. 
ipeacntoy Aflorw spaecfl rJtmo pop/em. 

f ridf-ihOwI: 

1 -3 Or>*ct - xs t iitraian 

cc Lhi-i«e tamsnd *v Lioca C 

co-par. 
obug M*cTM5WCrj*c«rjj-^ Deotace 

y*- r r*: >:- a . 
rjikU SubaBla^L-n-areca— and 

ri*e2 Arot^*r|^ »,0«r:i3;--iTd 

m<foafflac» SmaJ va-sa- af amaca as t>', wr 

-ec-?i -:*!*■»>-» 
POT* Partor>* fc iearcrwer 

tfi DECUS C craat >var«nce> .- <y 

FjdBihDittLJ: 

gor>G Gorcb~:bain*TxmaK 

■aft A "nan" * r a* Bat to-r cv. 

*. Av*-y ■aCtnt'T-atto' 



122 Amazing Computing V3.T. © 1988 



For PDS orders, Please use form on page 128 



Laa o' goooas. 

■Jap X*pM.r(«ii*fw^i«mt«y. 



WW 


?"3 hO-ZOna] HAW 


bgrap 


A Boyv-Uasri g*?-J u a* ty 


btan 


CNU Urn fWcrwtyiDC', -■:■ 




HorXng 


pm 


ArvPfBeyf-UMt^ifH *a Jiiy 


gip 


D1C US 5-*: 


MmM 


i - se poraew Ka-m.ii «pr no tonnefi! 




mod«. 


MyO.1 


FhWiBCeme^CLStorTiaAm'ga. V. 1.0 


-JTCC 


AMarWsroLMtprog'B.'ri.byRooart 




Fran* and RJ Wca; 


FradnaJiBtafcl 


SOU 


Con. tola dovca damo p/ogim «nh 


Ijppartrg tn rul-es. 


faWTWp 


Cvroi a VDuti diagram of Iraa me^j-j- 


ircJ".«v 


ta.-! &e npg: rnrfo', i lapi ksy or mauta 




BW:Tt» 


joyilcn 


Snowi hm B Ht up the gameport 




device as a joystscx. 


key bard 


dBr.onsSasi tJrecteonrnunealont 




wti r* keyboard. 


Ityen. 


STowutao 1 tolfjwiiibra.'y 


rpjvceibfn: 


FFUi-tiftrttO'sg-u.- 


ajajtjN 


nooki (41 mom* t> *ght fOjutcK port 


one.wndaw 


con »m hm noonf dam 


pmM 


Damanitaaa booh to •>• pa'aa* port 


ptata 


Optnng «^>u«ng p* prtnar. float 1 




kw cr d, ^:»y^"{ 


yn^fwa-. 


Pmw luppartrauarw. rwiMrkng 


C«Ceti 


m p» pnona «r on toon not 




mattaj 


nag on 


dnH toil orBwng r*g ont 


iHpWari 


unp4 fantwhMa on craarng jroi.' o»n 


Wk 


C*-:irt»'i Br; 


afrftftojiifd 


Ctm %& 1 £: axf *c 


tJwc-sy 


nrwiir: af cinKTorro 


iWCr; 


brpt*«evvu^ of ip*«?-S]f. Mfi D 




rtepwi 


Terjwro 


<Jfl>lyiftr-Kt>tJon?| 


law 


OflTJjr-4'MsoOiyn 


^■adsi 


dar at Ti- :r n r .»■ 


tam*o** 


C3-pr0« 


i»l>i eoTpnw, 1 1a lo^aaae 


dice 


*-» 35. clock rtflaraonaar 


rcroarr bcx 


. »j*acac WHn b,' ii<ro*m m fro-n 




0*2 


tnul 


nmova* m jrtpl* oeex/mg -warn Iba 


tatm 


deras uarg aound and Bud a tj-ctanx 


h^mM 


MoM OhM^ndj pfcii* port pmr^H'i 


Mtoriri 


A ::■■« (ri-g -^ sa^a'porrpvar'awi-. 


lore 


qjt%lon MS« tori progrirn. in C 


Uipc 


S?iOT CBnBHfft Hid »T4 




m^sptcs *;- C so-'Oc 


FradnahNak?; 


T- i^^-rirfl^iKL'jMj j're ga ma Hart v 


1.D.V 




'■ciF : ir.C^3. 


T- s c n cim ra C ia./c» a Hick en (U 7. 


PM Rift flak ft 


bbJbj 


lVbm rroirsocwnir 0*0, ind wtiv 


UVPFORTH 


M;-ri'VwF'*Li FtT- ..;.*&:- 




1.0003A. A I'-a-wwiTBVfl-j;- -! 




FORTH ^om Fo-aii Syito-ni 


prof 


1 mora poMrtJ us" fflrrn^lng prog/im 


Men 


P'VJ't^-p WJf« -TB'K»r-M« 




on ind off. 


Amti 


t ft.be 'I ClM ^p# d«n a 


ipeM 


noving 1-3 vt Qrapho 0*- 3 


Fr«dFihI>ik1Q: 


c»\i-«: 


A- -M> rxw-Jti-^il^sn 


cer« 


cenvfrt ■ *i#i *t» a bray 


■up 


PsT' vs^st ty ary^ipo o' 4 « 


ins a 


Sr J ji-Dije r" XTHKHTt 




^rrt"K '.» 


rft 


Ra.^M bivad B^dwfe " *: — r!i« 


c 


wmp* di'Brtry pFog'wn 


■i 


Mii-nii UNK H. *f U^n-iyt 




wocardng, inC 


j^nq 


*■* iduMai and j-icjeva 


70*73 


Saf TfKgaf* 


yacnr 


Dtiogima. 


FrajFohBaic 11; 


op*M 


t« thow pra^fin fertf»f>iy/ny FF 




irrtgtiwfn m*o*la-**u* pOxat 


Frad Pa* Lie* 12: 


amigata 


S^CfW ■ rotirng 3 (Tfti'i a ■ J 




'A- ;;j If n*. 


A-giTerr- 


1 fc'T -1 b-jBtc iJ'o^-i - , ** 




in ittemovf 


mndd 


Bnowt ■ toKng 3 s-t-is'i m« 




trarri arrow. 


W 


Qt&f itSngprogffn 


Im£m 




Sa-ftVndaw 


5»s jjgi';' t_"e - -; ariji ■■:- 'rt; ■■■ 



MWvnrii 



UaUt « con iron a aacond irrag* 



SwTvm *— i*a ar jacs 1 . ««r ASCIf X-tor~ 

Fni Fiih Prt 13: 

A Sj^3# i' S tSfi 535'lft, ■ss^-^ 

Jpa< tsyOai «sp«l*i 

■ Xlc :■. AtijKri for 

i-^vk" a-^a-copgr band 

ca-11 cardt en* 

eso«rC4a Cooy £.->-.■ 

cj$u* dtt tiegiw 

dnijofi d'M Cj/ijncTtTglt 

E ;i ens— fiituibr 



tacaf 


heap* 


goTo^j 


dar* 


haAj 


-1;::: 


ht*y 


h/kM 


fwo»n 


|ota 


in 


rffx* 


m«nu 


r "o*"l 


fflb.1* 


or* j 


patfi 


ptm 


pruTM 


g&cx 


Ttr<-rt 








Btad-^t 


itfb 


-rer 


Rob 


UCK'J4« 


UHII4 


naMa 


■riDK 


4"-~* 








wrt-pad 


ipaotrl 


Kwausoacn 




apaactwaay 


■otl 


WOT 




ap><W 


ii pr 


kjntfoad 


sbpffr 


BlU 


■frmmJ 







•fen**! tarn upo^&pry r; 

whtja* ir>o> crosTDer 

(lew :***■» Dfog'iri ars Adilc, mar M Atqesuc stk) 

iOT.i B-cg'tri am prBiarlBd " ba5i iangjjjgij 

Frad Fan D-ik U: 

amiga3<l updawofflE, incijd**C wi/c*toa 

fi>l Nddan surface ranova. and 3D gra^hes 
bwp Soya lor a ^"Oisn ra; generatos a 

bMpaourkj 

dai eafractt BJtLfrdm wiSn C tourcs ' k 

Umens-ont Oa^&njtraiBl N diTflriBBnilgraphjcs 
l^zap -xnu'cst 'Z, t '■ ti p2^ n „-. y 

tfi-trr updalBD'dik l.g'BphiCmamory guge 

ind'Ottr 
gpnvarrj FF or uih fi«i to vnaga isuct. n 

CM 

pdBFm trr-pi* W8) VTl C3 »rn r»' e~ v i:r, 

itM bZSicwi 
ataii tmpwU'ix tan" «y* *r*i 

BK-ncafl mai-yUn:,icpr'pait>aVTCip 1 

if"lw^a<aion. 
FratfFahDiJliia: 

Bd(» yanriciew^o. iMtlKi\nrni' 

0:i« ar-p«ac]al: l e9aipr»gr|-i , orr« Cflba- 

Qbjz* A- *g-' "sC By-- ajy ci^-«' p^ya-, 

Ata y p^qf 

Br^ais"otafBfi 
ManaD4ijr A'«i y r*»"0noM*r gt"«WTaan II 

AMtC 
OudaaDb-p CKdataUtSSd-verandlrVgrteanc^ 

K70*" 0^*-D p*ogi."n 
Poyffaw A c*a*^g p/sg.'ar w xm* bl At*sC 

Pay*-Brt*T» Ai-acai pfag-a-nr an r AttaaC 
ff.Hl FjaftDrtUl 

A oc-Mla copy B* fria a*c0a>*»ar FFoha 
FfadF1aft&ik17i 
Tht NawTen Dcj Ve»vna3Cj*.fH.«Wc^:ri« 

AffgaDipay Ouii»riri; progfri prp 6a»r, 

laMCtaMb^s 
Aan f-fTM* C S"»i!-i »■ *"eii pfogin. 

niwy, ioapa, oc. 
BrOMBtf M*rt3«rt a 1 « tra*. d.spiys * «, ail 

■aftlatfiUUtt 
MCSaCiC docieinupa/aiingyourAmaaUuHa 

HCOOIO 
lA/tdm rotiai an N c-wso^a cjH wr a oyster 

PgLaSft SAY cornT<a-<i nai aika.n ng L«tn 

Sc^Tipajr Sc'B»n rragioprnij' 

Xiapl 6 ufcra, docs, a.nd aaecjabia fv 1 Lip 



Frad^D-fclt: 

Bac^Jaoi te*,-ora"lBclCiapijac«gimBj 

j«yU-fSc« Sd*iDyJayUr«r + Ayr'gagrio^cscrtp 

r»r-alB.i.-fr43»<£fl 
KaymipTaK hv; onfttn = be 7^**7 -vo-g u-i-w 
hwM!- f -3 ,-; : w-o *<■ :c-i 'y progrmi 

NtrJOriieMaviup. 

Eajatuiaia: 

Afn^aToAan cofl»^ AiffaotwBCCwa DAarttafmii 
DMSa.lv p'Og'trna'acs'rt'^aTt'fiorria^Bshad 

Ati gaOOS P'lit 
Kar ata^ptofr-aAngaDOSElUihaahng 

V*cton 
Hd Haa c«- p *- *y ala Compv*/ 

La'ig -age - ajaj -w. Apr: 56 
UapdaiBraa Uix» a-:: cs-'tes! wna-i 
UjfcTjftng TidTD«-a!a^dtB(Bfrpi#t!afEj*cwH 

Pk* Bt,pt »rtlBi,DBCf from C B8^C» 

Fxciiand-ar larp* Par;-Hancie?r p/og r a-Ti ta: 

e»"V-i 5^DMtBCFL*rwrortn*rl cjea 
Hl B faa flinrtom ni/rbar dbtvi»/ in uamSY, sji 

Cof astc-tn' 
SaMoukaZ kai ?w i-olw port !d ftgil Or k#fl 
S paaefiTfrm awrrsinal erryiajor mp Epaacli 

cacas 'jci Otodem 
TiEd i>- d cater *-=- Vra-r's &ar* ht ar 

FrM flail Dai 2^ 

T>» * 1 cooy !? ThcrTn»v**coi;"i Ua-waiEmt S« Eioow 
*i4 Vavygocc 1 



T>»BBAconari*»»nw("K:ira" a'noaer-acs 
Lamei ■.-i,:- H:* C"J"r tms-tB For 

l)n » V7. 6S0 <£ Angt, US-DOS, 
VMS Uaai Arqa ^-rcsfi laayi, 
»at^a : na, fBac^S. &.<%p i#(, -ys. 
Pr-ac* By ArcyPogga Ne*fcn.ti -cjcs 

<ALT> uyi a> Men keyl. -;-j* 
RppM*, f-yw prari-y. - ac ■ _: *ias, 
wd wao, *t^Trton *ey% 

p0SM*T9P«'B;ngjyfjBrniein t«w W rr§jnH' r *i for 
»jo( p^o wa--: d po-i fciaoE-iK* b t*- kMfftl Bl acn-*. 

Fttd Ba om at 

Conqjai IrBTlBAir BCv«r!V«(,nJa1onnaTi* 

co- ~ andi.,ianfld vaf IMh s.ts:-" i- 



UoCjb-2 Aprr-'»«aaawa~-o ti r« kng« past 

Wbc^s-2c:~5«* ;'9-iyoe* axe 'rUicrsr *' 
ETHZ. Trtscw**atrarsr'»3ist*A«GABPd ■ 
eaecjac x T« AUKLA jii*g a aaaca 'aao* B^ary orty. 
Fjaj fjafl Oik 23 
G-iT c Hw, Ag-i:rc«m:-s , r«gi-*:.-ei".i 

Tinefi T-.s 5.r*;-iprci. 5-#-»c h*:< 
garn* PyJonnTiMMa Ortytmtmiu'ati* 
lipaaart 
r-rtFB j_P.i.X 

UnHtn« ProcfcsRstna A- gi *■%.■»* cae*ei 

CtfiectCWftCB^. trflSeihjnlrjtgatriaf. a asvi tc va„a, 
■cec-ca:; 0' code, ca'Ji, aid cis 3' 3 nt„ at) grain 
bira^y Sa BaVl ^tti r. fnn.nicen: u* Ubh 'a-tJut" fcOAat Tha> 
ou»#: ! * car- M eas y proc«i« by 1 wpara* prggnirri to 
produn Modioli 'S^cxardi 1 tuublt fat ifowniojdrgta 
PPOH piofranmei, ByEF>cBaoK. 

C-h«riiil Pol u( 9* KwrTiit til* trani% 

proeraffl and Hrvar. 
Pa Oiplay and wr! procMS priarirjaa 

ArdiK VetAnoihv Diagram far bundling up 

■Bit SiosirxJ m tiling or poiing twi 
ax a, sngle tb unit 
FiodFlinPaTi?7 

ABderttt Anigii Basic dwrttifrorft Caro.y Soiaopw. 

NewConvsr'FQ creaks bnapafrorn *j t*-*. 
6P»"« T-di ace-MMa. al and wrM t> 

t>3iiei of r* taavil t>-.-ap 
Auj^BTapl Av^ittD^crBa^nirldualolbrnapa. 
LotdLBM 3its b-kj d m'aya FT LBV pci 

LaadACBM lews vv loiayi ACBU oca 
Scrse-P-r: ceaies a der-o scraan ail d jtipa Jl to * 

g-afl.-.ctytK. 
Disassam &-;•• 6c": csas!r-a#' Paadl 

canoaffl Arqa ;:.-<- -'-. .*.-- 
OiaiW&#irT#CM>* Utti-S Dial 
Mci3-saTji3 J -»d fhaa. Tnaaciiif 
nii#-»- '=,-■»! art ttt we ft ba 
aiM-j" a lap prag'B-n h nrjnar't 
inT**a-yc*' t»dttu«--3-Bddirar-ci»y 
By&tnoge^ 
D*c'4«*j>*-i: E^ir&e cr! 1 «yan &jczs* ty t%» 
Dve-fc iieyaoare ayO-"- l»siK D.: 
nexovd 9ac*.*t BH#-3yf if-pa-i at 
*»* a-xi V QKmv By S;»r E^-i 3 - 0*. 
hywcyc&ci Sofoyior', Im F*b B*Bir» 
L-exT*-3 Eix-^e a 1 propolOra gadDaUtD 

acri>1 4 'i.p^B-W 13 
UrEcri:- Sci-r.a rtcK-.n 1 : 1 ix ;-g 
yajr o*m hoT*«rtw t Me T+rvy 
•a pa ~a. an, by>UcrBBV Fbl ngar 
SaaslMoc F^ag'aniadebvgl-* 1 *^) 1 "* 

EoerceDerat Conven .- 1* a « r J *c tdvtal 
: - e s> ar poB'.anl a-d rad at 
w oily apocti oricu asom ard GaJtaan 
H»i«piat3Br. ByDav^Eagb. 
FradFLanpraha 

Afiaw ga™« Dy Dsv-d Amjtan BackflaT-r-on , C^DOage. 
Uextane. and Ore-a 
Cpo □£CUS 1 cpp , C^proc#ttO', iidanaclfwJ 

cc' MM k.no*A as ■:■-: *« oj. )V aAVi C. 
Sfcar U- i-o-ai" •■ i"c irn?' ':■ 

pacK.rtg^'wfa' tavb. 
SjoerBaVao Boa-apta a* uamg a SctaiLaytf, tyciraj 
s.a»8Mi» br D'r*.-g. and cmasng 
dUTTyBBxa^Dta 
F.ad Fia» r>. t y 

Aej it>a9f Dhw Di^o p^og-aTi wtvji ma oao no doc* 
Anu-natOrDtfra Pay*' 'a- re An^ s ^'i> * *i 
Cc Unx-lka^art<and*wMjiraC 

■tia -'cm, I «i, ine oev<o» 

RjBk Anrraw Pwk'xtvbaprog'iim 

S&fXjLb 

»v:: VT-iWarmmaaflJiti' wBiKatffiitand 

X- ?5r - prober- a 
Ff»dFbhrj,k30 

£avtFBlv*'j.'iwi«'«pr>g'Bma "P-* i^j-s -nqj»>E Bda-nT.^ 
Syoy^nor»rp^ogTlTiLii* , >j, n r*ycan«ri» try* 
talajwa. 
B3S an. AYHOaflaaeflaSbyEwan G inn an 

Fr»Ai Mgaarl 

^o^S:■^ , eo:1an^ byTirnRoonaan 

UenjEaaar CreaA nanus, sava fwn nCsi.'ce. 

By DtY-B Parian 
S*T«rnlO W7rK*»l*torpnur*<aMnt by J Nanejar-e 
iFnjd Fb.1 Os-UIjC 4 tf« 1! raquWK wrram yaarafl wt a: 
BMBtlllMOtHi [Jl.kJf'Omn»«I»CCon ) 
FfatfFiahDiak?1 
1*9 Ltegama. uaatbinar ttdo lSBDanaralona 

■ncoTtt 

Ha^oe'bra: Wv\ y\ 3 <A Pdoar: Vwt* 't pr ag'arn 
MiEia-ae UJL,a. eic-sa- gadger! tint 
Ra-Scwcf ^*«t^ra.I^^ft»Altn^rt,cno■nd^Bt 

Ser. B«ro'acer'en: 4 Q>' ra Mar** 'atT* 

x--i-c*a*a-v:— e" **• ioei.&? 

"V won (Pi 
Tfta [>»5 1 ■K/ifii :w jtt- ei> >», 

RMln 
TtEd O X«C 0«r-Q wnuon o'Wc'14-- t"S 

fciteaSr. TiEd. 
V*>** F w '-w„'tc c**-g ? >5/*- by 

STcy*™ Vef-axj*". 
XCOI hYO«esCt.lBcrpa ita a-: co~ 

Ton Oraoayt in! * « *-on in con 

FrriFlahDiMB 

Aoc-nJi Ei*t;«: bCC-«i iTcmr ■>- -A-cja6iac 

Ca*ndBr Caarcpaay prag-a-n •» »n m Ar g bBjuc 

OotPvii F 'U o'sTt a 1 cli vmim ta»tfsr 

dnajaspart 
3csP.i3 Second aalUM of CLI orwntK] &> t 

tt'dawsprs 

LiSCj"^: ri: :■■■ . 



Ui ■-.'/«. '.'e*i Wa<P«-i>c'_-tt -A-^« ^-y 

rbgh 

■H, no u-^m p<w«. by Scos 
EvajflXayi 
P j£« St Jilan a 1 puufa «r rf 3 YT<j agjara 



SM**HAU 

5, at? 



VawMAAl KVti tin CU 
ABaaC gar«t a! Ca**e<e and 
Kondka, **"• DiVd Adoiaan. 

S#nS GrBprcsde— oa'sp^nr ngcjciea, 

D^bM-bvV*0 p. A~r * 

S*ofd S*o4 :' Fie- A"g* *«: acrwTEura 

eameiYWi^ri m Am ga Bate 

Trail Leavers a tal be-^-d name. H ModJa-S: 

FntfRahDlataa 



3«'ja/i 


3cf vamari a( N *sar 1* progtm ba*M 


Bgn.p 


Lm-etwl g-aprtca axarrp* sec 1 




bTnap w*i ScfDilVParL 


DCufgail 


Doubla-e^'riBrad anmatian axarrpla 




)pr B06« and VSpntH. 


DlkMapovr 


DtpLaya lector alocatan a" foppy diski 


UofriVem 


View rromafy rt raff tma, nave wilh 




joyttck. 


Ding 


Bouncing bslsdftTa 


Sprang 


Ong, tw31 tftjnd affcta. 


$aaeinOurrp 


Dum pa h igre»T tcr«n g f aaj ndO 1 * *J! r# 




p-nntr. 


Sdb 


STpiaBaabajt pysgrafl frern 1 




DECUSap*. 


im 


sar laid oar-o, i*a StvTJik, 


TarmPut 


Tarmina prag'tn m?i cc'-'s. 




itm^ fvnCon uyi, Krooani. 




CIS-B 0-93X0 I 


woe 


»w 2.3 0* Cava YAW* VT-I W 




an^iKy, <#r aces a *j"Con 


FraflHahOriJ* 


MM 


Suppot'« *ar G-b»i Vr 




lynmcnacaB)' 


Mr* 


PD "a -«"c9-b*i» >*' H 'ior 1 Tsa»*. 


tmrnm 


Upaaad B FF ■JVaw 1 . ■ 




Uari, *7 aca part. EO| 4 i» 


BUS 


b-iaa ci*j s? jci/e -mi-ms 


Bt**2 


AtoItb- -*so- a* 'iree' 


CalndBB 


Aano'^irtCTencJa' »r aJarr:. 


Lata 


FayHBwar, aa-arcr ng, potion by 




prearn ii*ar*jnOey. 


HawFana 


Set a' 26 new Anga 'a-3 ">s~ 




■ Hachar 


Pr 


Bao«9*oune pmi u*ty, ey» 




aecam.waea'dt. 


Raqjasar 


::•■...- • . ■■ -.7- Fa> -■..-—. 




WMTM 


FrtdFahDr*K38 


ASamPanai; 


Caianplaotnateng asynon'onags [0 




cat to • DOS hard 1 */, w ran by C-A 


Ci^KeVi'fJ* Cni-ae a'ger.-gr* !-^'.:- 




ponav a CON a' AAW. wndw. far 




1.2, Cy C-A 


DHM 


Wan *■ d-fBcti^ ra*. do CU 




opa/asonihin nerxil 


DHMs 


Arwr*- *k an: o( Dnjll. 


F*aflae^«ltf 


LaSca C^^uoBaf^orju!a,w* 




ooto orver, *ran r.-;- - Haan. 


HaeVlM 


VawsMatftrtpcL'es'- A-galoyi 




SThJe/llt^irih xa-rr>jr>c-/(!.t,Dy 




Sm:i£wFnden 


Pop 


&™M FF >aadaf ffir- ar 


PqpCU 


&*■.« tfyc prog'am invokaa anew 




CU,w>Tn (u»Ta>c ioa«n b'rejng. 


OuKkCopy 


DtNfr'wics'CM*** OwEi-caacapy- 




D'i'BC*c c a»i 


BeroVI 


D-ti plar'ehd etai oe, 'n-- C-A. 




«iow «0s300i2 ot piano 




pj aytafkl on a 320 ■ 290 x 2 a tr* d«p 




paySeld 


SandPaciwt 


Gfnar* .\ i v;j ! i J 3:.*-c-^,; 




AngaDcra pac^s. 


BpfMUw 


Sff a MS', car tava wo^.11 Cdata 




moetu'a. Sfa/awaraDyRayLarBon. 


Trtdw 


Co^«-a rfflw -ta*« + r 




baffarKtranyriMioi P-t-u-^t 




ant' a*a t?jcu'a Sna-a^a'aDy 




tVadWiun 


TrCaop»>[> 


BffB»JnvtMngBr*.!o'^frrsr 




OStvajKaf, ncwpuOCCBfjin, From 




GeWdOMPjblcatant. 


Tan 


PmltoHUWOf ajifiaMwi 




lubdi'aco'-af. 


Unrttal 


C Draoracessor to rar-cva ovan 




••oafdwcBonioft** 'aa^ng r* 




tit a:-* SyDavaVen 


VtM 


VT-tOOa^Ja'aan astarogmm. 




Ftac j -e* > sj-j: r,re- 


FrtdFahDrt K 



ACD 

Cboc 

Can 

Dw'Ad 
Ecro 



Fn 
Kc*Bar<r 



LVii-J i* taa' caoy Drccfar 
Urxi»C WrTijn a- gaet 0-1 da* 15. 

fJan batfiAa CLL "^ cam/^ nr ao*t, tt 

DM paning ad onfB->m fCDH, 

cao**i 

r*iyswad 'asno'co-^and «m eofer, 

cti-sar acWna-g 

Fa prsg^i-i a *• par- ty^ <rt 

eaar- a. — #-a-y 

MaptSTf WS=rtl'J# 1 ,JManr-eC5i(. 

Docs, oroc/ar 3 "i«e 1 1"9« c •> 

re «mm. « i Kotsat ■*« toz-itmre- 

Cp-cjLfcj Fog, F«cn, and Knead 

■taCBO-Tra'Kifas 

Dawld Aoo is- ABue 30 - aa 

Dnwec:»;a-e 

Vac*K-l «a io-ucb-w c»c ^ r^- 



Ve-s;- Z2 Sf GaBraVaecxar^ *«C3- 
program 



For PDS orders, Please use form on page 128 



Amazing Computing V3.1 © 19S8 123 



Yafl&infl 0<f ijya gam* p>ograf- V. W4 




MflHn« haftn/. Ajr*';U*!lOi:ort 


Lav 


Dtptyl n j^D* Of SUAl iTlful Cju*-* 


Uzi€~ tea Con* ay UcsE* tci V3 to, aw 


wtanU'Wn 


RraBlttm 


S^,laatfle'Ka«y>-l*t^t , tal/lMOHlsr 




M*rad«d av* latt 1. S. and 1S i*n.nuai 


ran fl si 22, S-E-D 


Fndn*a*i7 




kjajf 




3j-.es by W an FLc-. zje 


Paa'Faf : L«a Ta&AA Do: fconoad edgaa. 


T-jok r. l ; ) ytD'Tr=hya J r^iL3eS^iKa*«yaa»n. 


ViScaa* 


Tr.|rrt'»M 1 ft« Tnw Encj.ai t» Way 


MOlTacs 


Pragrari r gf«y.'<a*gfd Srji^gfi r* 


Ter-an SaanM *T=ta! KKmrf. $-£-0 


0a ! WDyB[rC' l nfVfly cWH-'sngiriSXBUrWT.T 




BpHk, 




MDI IF. oy F'aa Cui v 


VSoOB Maun 2S Vsyw, ha PaoEAoK. 


FridFthQakM 


■VaafWiDUn 


htoafwra 


Pracjttn a f(,i* r* Wart Bancn Sewi 


FrtdFahDakSa 


C5c-irad SepAfi^Arwncan.CraaSCja*] 


SMuj 


S— j ncrotBraboicim.wy good 




arga* IM.1 norm*, by Ma' Kiln md 


T-is tiKi^raUniga-* W**'. by tw So**rara 


ripjaratn 




yuy-icv kwcrpf) a» . nc-jo-'»g C j*Te 




.' - Uatarju 


" :: •>-.---;:£■ 


FiOc. Si pa 9*i3*j* a* XT«n miVm 


*«*» 


E'C&A-a^lW^nflHAMA^^nsi sf E 


T: 


Program -j -i-« p^ A-gi u> »e 


FiaaPaBiIaBBD 


DCNCtlM 




fOt»!jjflj* 




1! a c - -. ptu ^ 5 ■ 1 \s - *i: -9 


Tnim a pe^ff* raUni gmt l-an". Sy r* Saraaaa Daalan/. 


Hnnr A- 5*C0S hand** (davoe) eia-pa 


VTlQO 


V»rt«n li st Dava Wicaa^t krr.ng 




&y Lao ■ 6o> I EW- ac 1 ScnaaO 


vanuon ! 1 Z & 


fnnC-A 




an-JitiF, *IT Xflodari infl K*-l la 


rnifWiDdkH 


FradPaHB*H 


Hc-'Ee kl-aihP-'ICaaiLv.wTr m 




?n* prstKD* 


Cr 


V2 SS stUta D"anie«i iu m ;Ua; tad 


Tit 1 a- 5"c! FFsMDlcedn csn *i- CV"-xyt, i* 


Uoduna 


FMHahllUrU 




b' H1-1 C] by Mi- Ollan. 


JOdSB^dSK 1& 


FFEreaoa 5iwif)ei7nnHr IFF *» 


Phi 


fctvi wwr of ■ I" ire C » 1^ A^nwr 




u x 'ec ?y Sim Dm 


FraaFMiaBkaa 


rOj-p Dyos "'a iWL.:r FF*a 


f>: — 


WfcSr- t 30 of I ■f!-'i**J a^waSjr 


Me#Swt-o* 


HtwCSursjonooJtK 


3** Urn »K prOBaaaW, I Ehfl "aFrt". OMSfl^want, 


Ji- BOS C-»h* CLI rm 




•Jf p«na U-ntdanet 


ASBukfuin 


wTi V2^aHLndDa!W4u3Mnirding. 


Dutiou-ca s-c.c-xS«C 


HrftSa* STATUS-) ■» p-og.'«n. *««i 


CUi 


Vraw Z.W fff Uit ovton 1 Una teftV-At 


TW8tarWp "- 


ap«n» ■ lUn wndowr. ,ir; ,»• tpacs by 


MWB E ia-:* :" ■?■ :.■:-; V.':*s-jpt- #--:* 


p-l-r/. pOOKtat 




CL 1 tnttar?*r\ rOuO ng 




CanMdajai, 


ftpar lOlktB moTvcfiDTi cwi 


flawa Gi-ei' R#s*s.-**sy S ' 




Ltnea And Ma- 1 C kjcb 




•xsiOla BlX0/C4-iy-Scr*Ct3S' 


Varwn ID 1.SFD 


UUOKP0* T'ir-s j* br ry l ai to Bit. Lhi- 


Ofcparl 


Dihbenc^nvKprogrm to' Ut.i i-ri A-gi 


Nafl 


Oi-ge ino?«r progran i uraan col en 


CojolrVB £iAf-ptob'd3ti-ig aojttor- 


1 W pr&gtTi 


Du 


CorrpuMdiBXEOfsgaotitaoi' otac'^ry 




Py Carayn Scrapptr 


Wp/W?ar<r tprttr. S-E-D 


Vdraw D-awtng pogmr.. wuon VU 


UmiWim 


PtogrimuwtKntarpniffi.'f'inii 'suniew 


pDeOavce 


Aawi«su^tB6uSx/o'&-«ir i a<*ts » 


Cs-i.fr QkNnlW sne^ re hrZjiKMkA 


Vt>«tF.'€r DX Ma} jyr7?war wca F* 




riamofy. 1 tT»r:pSl0^p4 l 'T*'3BTagB, 




&?'»: = *-* i'.i-cj7: -pL- i' a- jr»- 


■prtans.ni. S-E-D 


prey in 




bm pjs l>p 1 rtQuecB' to fl^m* yeu 9! re 




bfllaSDwi 


JTlne Bj e-you r -o»n no-se zf.cx-. 


WtM Ei ]-lw 3*c-m:-<j i DOS wtwis- 1 




oM-riga F'ot b« SoVk Os. ey 


BgtwOw 


Siwarn— x y HAM-a:«xroo-i is 


Me--B, Cv &-«tes C tauisS f es h- nanus. 


XIV ICHH 


FMkM 


A i*"t-* enetton ff ^"v tar Mm 




IT rfF^.OyCir&'ynScnapoar 


patetjpntxtcajBrotdni S-E-D. 


FtidFUnUaaSI 




Co-39-r-i kMuCHlClOjK* 


SPancj K * D»n 


Dtma i'r* Aav*on g *-a i>angnt. 


Na-rPadwiai CSM UaU an nM paMra and 


Ar-tEcT-0 ■«-.-5". "to jch\ '. < ti'w*i-iu*-Jr 


■niHahDMrll 


SovnE»t-pa 


A a:.Ja* BLifVarJ loynd aairnpit^or 


e-.c1.ti en Att^Doi 1.2. 


Du>ay DwiyiHAtf ~tjn T l "«y- 


CyatMlk 


HOC*» B* »«7ijr.c ko?U" *D" (J« 27 




Manx C- by J - Gaodnaw 


PaacaTaC RaCaJ ti C Moriltr, not n o/aat S-ED 


?acmg d^9 , »". *n •»*-&* e>cLi*h 


D-LRl 


Enwvad Mnvan e'DnJil Ish aw. 35 


VlC»( 


Anongvipfa inrp>a DyEnc Ca'Sen 


P»D >a^''4«FOfTTRANi»p(Mtia*. 5€C 


O/wr Eii-MOSvaty^-io-t*. tea 


UuWM 


krt a M'.of oSjacl r od jaa apd 1 0>aw 


Vi'03 


W 6 3' Dav* ■ W K *— r» an . ?•■ wn 


R^Bact SaftsDfagfiri^- ai naafrgCtJ 


: w RAM du 




IMCnng V fflirtpf)r Ot*-a« jy-r »{ 




kvt I ar>d i-"aflan tw Oa^a Wapa^ 


wndcwb case. E-D 


Kjp XLbj 17, awcuwwaiTy 


i^Upan 


Dm upoaa us if wt apio-s t' 


F'KJ F*h Dl»k » 


SstUxh T^iDfogm-so-rraxayccTi - 


wiwia** 




irpDngcsr-Tenahm Ch»«j«F Sat md 


C ' i*^ v; 


& OC" i-3 OIVc* -*^»c# '}.,!-«*. '; tv?v4e 


*X*<H *r*n r* ^5 ,» .t *-4rw« 


v:i: Te'-ii.'*"Jiij , wTX™3ar* 1 Kr , "'l 




'Vtcsw wV»iuf of r« udcc ,,, 5 praeaw 




a emdra nXaca sy AndyF'xa 


0w»3rT>er- V*Tb>' ■ rj. E-D 


i-u CEB (rffxcsy \rcm «*yv ta pa 


P« 


Cc - p.** ri c iDiyi 3 c -a-i : - ^ 


CaVfWMI 


LV- at t* j at 1 1 DOS Pa&aA, 


F-tdPahDa^Etl 


RLE 51x0 a-o c&-*j*e-ct njdi 




t/*c£a"l4nr , iffi 




C*nl> ■♦ m. &y Ct'»yn Scnaopar 


ArSca f^ai- nan/ ori+ari SCSI rJK 


Ar^ Al3r*3' Dyarc* y CSOtyt r*-KT *W S*-i», 


Po-rtai 


Usl lypa pir*- ganrito' a* cao'cytr^ 


OMDhi 


P^-a- a'ndi 1 i^mcvcfvci 


co-ra vboarl 


ijr~ U apan lei. fc-t« 'xm. -evx'CBi, 


OUguH 


C\«r«S atwrv 1 "!Wl hSr a. prauaC 




r*,-as and nftn Tiar- at m eiac kit py 


A*-6* Uan aua-:«« r . nria- V9.V E-D 


o*vqi nm. j*»",ai. <vr«, pan. ax 




T>fcirc;v*i *i/^" coca ra: cir 




P* oLncwy 


Aiicnac EiarsaVairod-^DOSrst-T- 


Are Fj-j-ir '#ts-»*ns" t(n-. r« 




c-jsj* j» a CAit.&-Mtv* , a oafeH an 


QaflMjU 


Png'im ta oa: *3«_-a -*-a of 7* 


- > "bokhv, by actn-rg r* in 


iincard':' ?i"s:^l« 




irf^PW | rfcM OutC" »■« p»J*an, 




kd~« hKigvan f« -nm :- 


y j a3*g-BarBn«. S-E-D 


ArteCed* P>ogrir rcOKEMnt'Vicoan 


Ts-c 


En- :■ * of fe3">g: na Mttii-o o" » *>«. 




Dy &ixm UcMani 


f> P-r*rcsc«:i*ay rCLI 


n2 tH> L'U bet Cf . 




,i"cj « »tT*Cja *an C**naes'*-A-^i 


mac 


React an cy l* ix w*i 0-: ■ 


wnoo*. S-E-D 


&n* 1 -* -w»K*-ir:. , t4*i,**»^65 


Tnfett 


U;Tn*i 1 fiCv:-: , NS« 




tao/f»n: a( C caoa wr s» ean «u 


Ftp F pa*x««?t«r a4l;3« S€D 


vCV"? i'lwxicrt 




pragfan o-P 1 ** 31 




frjctsa* by C*^ y- Sc^apce" 


Fscoo F-oogo'crna-cor&e'ganarian 


D;21C OnGwi DZiQTmra r-UiV 


FndFUhDtakSft 


MrgtUtn 


P-Dg-'an* tar-anjaTaMan-Li! •nt«erT 


VAXesw-brycooa S-E-D 


Oj-uv W^wwwDOS'^WBatpfog'if". Vli 


An 


Vr-kj- VI cUina-aMt-*Ea«Sra0d 




iac-e 1 !.! y t j-* 9- Td RAM sorei 


F*t P^sia-tixnta'taaiDaeaariMior'wti 


OOSNapaf W v:wk Ar.gBCOS CLI hap p-sj-i- 




uurbv, canpatba) i"Si -na Ma^azorca 




by Car o yn Scapper 


SEO 


PipMpr'r: Pr.ia tm ^« «n ^wdn. o«s* 




m*fb~r |h*t '•oAfritrMi'irLp 


rnCAD 


An abac: V>anM cwfl peg ram. 


Mi xler "i n'-wc-i'iwiya.j'i- 


tyMM,ln» run am 




*30- * md r-3-* .UtfXtgll *-«,-j- a 




r ' py T r Uoanay 


&E-D 


pppCU $!aniine*CLlw?iB anga 


BmMM 


A pnek Mi'3. 1 gima, .ki 30 J iiibi 


FradFdh Dlak ST 


MM Piezros to nafl tie screen S-E-0 


wyiroM, ton anypn>p/arn,Wlri ■ 


DjNZb? 


Vt f *y 1.1 o!iprf)gvTi aecftaui 


Rep>BC« Dy fH7 EX« H Cooyign: prooUmi 


Hart Grarjn<:^fng srngoef-a. S^D 


tcw^uw iMhw, V«*refc #r 




md Oni-y l«i 


FrtdFah L> M H 


Pjt/ Eajy*ayBt#trJi^» < a= , 0JB* 


ScntEd Sa- * Ec ::■ ec a imip'Mili :-« 


FirH&lan 


A mart CU rapacB'-na'T; ajfl* t-JI 


ASM.rd 


EiSe-ey uaafJ r arewara 


■-~- MrKtr.r E-Q 


X-5p*l| Spring cr«:*' a sws m it a ■ m 




ad tng nd ■eoil erf pjayouicomrr-ancs 




teecwADe wn d-u. by Panj Kvoitwtz 


RtyTricar S^perBrytrapngproo/BTs E-D 


M-MilIaatAI 


Hm 


A Ulh-* Cc — a-n -yx gang, an 


&gV«w 


DiC - t-yS l-y *FF &OJ-B, -^iaoBtiv". 


Sa^dPac*asi Updawd Ccaalavawptaa aiftacaal 


J^grVmv« Cf>» yx' s«r »(■ «;►»-*_/■ 




wgnd.-niiaantJaf 




a*, he pryacM dip ay bib, s.ing 


-: -- -as on en K S-E-D 


pr^yani in A~ciBaic 


PkwjUSihwI 


Sc^nd affw fc* « Vwcdk wtnd c g i;» 




f*Kr*t* Bn>i(. by Jgnn Hadg»n 


Snapshot MBrraryfmdar'ticnendi/rp EO 


Can Vv»an 2.03 of D ^^ C r ■ ■* ■■-« 


Sa*i 


G'ay.cioa^oi 


BQpajh 


Raadapam a 4 »a?xJyvi'j# , »j- a l c 


Ta;B6S S-i'e*s-* 66i syne" -rt-is-' :2 


EiacuMO* enry 


OaAre 


Vanaon 0* "ire'lorUnii S|l»*i Vn-iflhi-*!. 




:' • ei 3-3 'j-aiw t farrntnid e/apn. 


FndRihB*67 


Dtug Uic;5is«Caex«Tj»it*3*T*J 




nC 




^UwfBftBptT'tffnaf 


-- *:' b-'-wi-csis :r.j : jng&n^ - «~ 


CX«Pl)f*0 ti*->ttyrC0U. XC4*t= hirtan 


Wo"t»T 


Vtr'i j" 3 B! & Dava Wl-x^i 


htype-Baso 


Sr are* ira ora rri"#g*r"#r-:jy I 5 5 n vi 5 


AngaSo© Su'ewa-d lnLft; on spring 


Hruri 




HF^inat a*^ j At* 


Uartaar 


W*uT*ougnr*J*#tnitffieTy Mm, »-aTg 


CT«r*' 1 WJ. ED 


Of f * Heat- 1 ! l e •egjeaSar. mrr kj-cb 


rMMiDUiii 




traa mv-ory icng T* urij 


Bo-ncar 3-D bo«rcng ba." »*nan m M^tFarM S-E-D 


Lb*** C'iH fltfflncpj'LlCCB 3 'I ■»»'■*'. 


Biol 


GHU b' Un* yao: - , no^ng jpont b 




PyJornHoogU'n 


C? — Tr- ■'i! tuog'-ar *VHon1.33,E 


L.-« Lf-«c'tw*^s*-ft!y*9'i- 




d i* 4 wfcji 


NvwZAP 


A Fi'dfantnlSan r Jj-Swao* 1* 


Dur5 ih'rvcir :'D-lT &E-D 


5**0* C»T«<a"lJKl^iCll«T)» 


CwfrMi 


UpCIII •;-*■'- cr-fTur 




BKS3' aorfl fcl'ny. VJB by Jann Heogaun 


HaaCatt Has, ae*. & cactr a pafajaflK, ED 


W OC VtiP 2 3 a' T* VT-iQO awt-nd pn>yan 




pr*o/m D" On 6 


MnBM 


A UtJtjVf S-y* ramocM garwiDr 


team Varxibgana bt»"i» inaga eara 


f,.dF*U**3 


Cm 


*Whaa af Ftrt/*"-n/pa'di , Ta ir A-igiBaae 




Dy Jtann Hoftjton 


Mixta Uar>aa.tD/ae'caiLndidu-v E 


T- 1 c s< ti-3 -i 1- A-^i lrrw- o'UovGhUE-rlCL 


£>**ad 


U- i »e "c ■■ a^d "uad- fat Sndng ?■ 


OMXfWfm 


IM SWUS payn. Sa ? ay SUUS FF 


Pa'sUat Bar 3 tfrwari pyia-a '* -i-iar- 


FfriFihCihW 




oVt-w ae>«fln m * ev md 




- ,t : fcr~i3M ' *i by 


R'SLC-aea taan,rja'caww r sai 1 3. E-D 


SmcBes^ A-^iBtsc trofifi- 1 on» sag* ' DD^ a' 




wtft nwteig r* atw + gn»n tm 




JcnnHoogun 


RTC«o« Gmiro oens a' 3D cubes, E-0 


ijDcJba 




1 a. tTd T» i * of dt , a^ r 'c»i 


■Am 


Ar-y LSMv«w- Sy JafT-HoOaisr 


W-aa>i *Wn*a arFfl^na'-iytagare. h An^aBaac 


5c- Dar-papyo'BEST ELanaw 


Sq.l>iq 


Putum WfQ^I sf ht CP*I 


nBouBp 


JI -a: ap?r- akd wonibancn p-r* 


F"i^D-a 


Um*ga-T«^ Eycv^. 




acvaaa lie ^ e jacw 




tnaldoet rot L-t* DumpRPort by 


Tms irFHn MG ipa J r«aa<raGrlLr£™jc* SoutBind 


SbaLtti k-Xf Ar-^iBj«^Boro Syla-* 


FndRasDakS? 




J 1 -■- l, ■■;,-. -.;;.-. 


ar*cL-aa« affr-cjoK , ai w* ai ix-c* ^ ar*- c -a,*-. 


Gc Ceanp4rtartm« to'Ut-j wLinoiC 


MbjH 


FtapiacB**^! 'a- Ar qOCS 'tugn' 


IWtWiM* 


SI 


btv-ovs ta *,"?* 


C«0C>af A-rcM'iuppr CduiwM' 




oorn|.nfl «1 C 


Brwaaf 


UqCAIJ to tfowW 500/ ar c- daAl 18 


PiaaT Rah Dlak ■ 


htflFF Cir*^»lnifi^»' ,, 3 0an'0»i/K»t) FF 


faoM 


Unit -unco-- *>M2M VI "t 




W3a 5-E 


Ax-Ua. Uara aaaen-biar, vl.ft 3. E-D 


(arpaO tO/Ut 


Poy. HAMPj't 


W3iiatntn-Typ«darrat*Df nNq 


ftlaama 


Aia?wof^«nwo*it(pn>p;im. E 


BiUb 3r-jy-«>D'ng prog'ar, in C P Sh£-D 


PepWour* *ovrtRG8««i;nj jiafiyapae' 




PO'ygpni n :*i ard HAU 


Qedt 


C3cn3">g'a- wJ" to-5 C33TI E 


Can-in Ra& Mxrtf^tana * o*w» rajlpaH :xi 


Sc-'leC-acn S."mc» scssfl/K ;*- is?"* 


afcCBaMI 


Ei*' &* o! "1,-1' andL44igK>ges 


t>T» 


DkjntotecibrVV^taFryr^irTirriafi, 6-0 


acting B.nd r«sto-y to any BpffcajfOflfM 


it»M« al~ scrw^s 




wt, Gug*:T«x: 


DooCor 


Pj-b a panjfn on t* Wai(b»ncn &acW'cp 


U5«CON^J.£-0 


ST EnyliW Nflf-ienwi Asm STa^u'aw 


TaWOlC 


TaWon'tASIO^nninalafrMaW 




ED 


ConiolB PooacerenTcorso>e roLtnet, h) C. SEO 


WBrul LraW&rWwvn proems tWfiflfrom 


VDnw 


Var|^i1.16 B -4V!»allDBKilS 


D-W&18CJ9* 


P^a iracomrioi Wwu>rrrcr wndsw!. ED 


CN >«:5 re sc h- 0: n n i.Ki* "j 


»ai 




P» -:-l « fl-lwTj pfiC;*!"- 


FjWB 


Smtlar to DopOPtn, butWajinl twrtt yt: 


d»6$.nUodLla-2.S-£-D 


WW T»U»i inal tyawldcanj fnitttir^ 


FradFlihDlakSl 




SO 


Frags, DWayi rn*m9<y |ajrjayaniath| li^rg 


raufaiM 


Aninrtoni 


Dima imfT'itan* tuinpiyti p/ayim tor 


mCAO 


Ob*ct-orh»-:tad drawing prod/a^, va-uo- 


M«l C^M T*Ti-y DMX1, in C, S-E-D 


FraaFlahDItiU 


AftCta 


AtpiAntniltK 

&«■*» rarana sc.pti *srfial wV\ long 


RoMtrotl 


1.2.2 Mjch irrpwed avar rJiv 5$, 
Dans atanimaMp^inBfiCrnWarkbanai. 


fcciTypft Cntnga ra !yp» oj an con. m C. S-ED 
M»x4 "-:«*■ nMa-iC. S-E-D 


tear* MiffijiMjircri 


KWwFF Nw FF mitor a frem CfiW tar 




nrrat. h tray can M auiy "arcad and 




SCO 


M*nPr« Mon Brs prcoesMt *or packet ad *i!y, In 


tlTOft" *3CB .810 T:J»C litl 




HfthStd 


Supe/nom 


Ger«^campai/4ng. r inartEi3an loan 


C.S-ED 


RijiTraaPci Ttb tin avi.ray-» tang pctinfl. 


AAP 


Pralr nry AnicaDOS -tjow- e>"5 to' 




a-CL a'.y ED 


Mo jjftCJxit lima rajs* oonaf fna a c? - a dodgr 


•fan FI33. ruw canvvxd » FF HAM 




\»ak'. bf, bnarf, fceno", VmMa*and ' 


F»d Fiin Ptlt 60 


CSED 


krmtt for *mic!i* lUaV vsw-j 




ntiBBY 


VirifluJ inavtnv and fmewva progftmi 


Sb flf pwws syStn ccL/rai. ham 


VrwLflU Oaprtyi nvmi ix HAM LBM * a* 


Co^dj*' 


Hot fuly pert* S) tv A-ngi. ffim i 6800! C 


na 


Wr>-:-yrK.3ai*cvww <rVyfu'. ED 


T'ansaror nagazna, vVO, jnC. S-E 


FudfitflMMia 




cowp-arf. fi«« 0faOuO»tr^aiH*T'BJy 


etzFoni 


MMK«itDJtDut*ii1r. E-D 


Spew Ge-cEtoi "Ha! 3-1 E-o j"v' ;ype 


Cba CI* twiti gimt 




tangufOf a^vL CM naad» a 13! of ■m\ 


ItOffTllBl 


Ttmri anuie»FW?i VTSaVTW 


faacfnwfren Ran It, In C.S-ED 


1 '■ ■/■ Anafw ^iht', wti more l»ci/n 


SDnllClVWI 


Upturn #T\ ul/c* es' re "■*' 




VTlE2»jppor:E-0 


Spool TrYMpfsgrarisce/ronmr* 


PiU-a* U-Kaanaogipctrat 




l?aada-wat on dm X 


Mod 


U5,n^:'^* , M , i'*nr!' E'D 


- . rj v -c and : d~ ;. -j - a prnvr 


OpCl* U:C5« 6f 5 OCCi»WT "«**' l4»i»T 


Tin%n 


Pan atp/agrin » »p ilHt "Sir-areiwi 


PrOvGen 


Ganaavi p^nar O'Wt, wtfln \. 1 , Sauca 


■prffhr. In C.v1_2. S-E-D 


■MtallUl 


UUtncoM 


Usl-ai as ancooa mddvcooa bra^ *** fr 




xvb Mkj tn>n aa»*. E 


Wc Cents WA J i j- 1 *c 5.: hiw, - 


InlwA 5a»*Ta*a»*toft*tfg™a* naff# 




ASCII ffirm nv, flijarUAg re^ oy 35 


Sww 


SoBfow- hi F- *i=t*v, ',"?■ L C 


CS-ED 


frarf Ran Oak 41 




proafl 


Lajcflt 


Crj-2»«)s:«'j' , (i!I EO 


paWRahBdin 


Am S-iTwt-t 6B01 Q ntcie tiiani>tar, RON 


FradFthDtikH 


LMite 


EjianMUad 1 *. itLpiactPA S-EO 


T- s .siostj' r-arewBK Drogrmi 


K--1 Mi~. a cs- :a*.39 


Hkhj 


SdNMT&wM of Ht-wi Pf9D*n rf> ft 


FtaaPWiDfakil 


Ar tyaaaBBlfei EKpcti t*aa of re tyikm, v' ' j 


OaoiMaSan ^iKJ»' f» arcgrim tHUCi 




gam Wo'VSaTyi wrdpw 5y A' Otai 


ATPiicn 


Picnai Tra-atofma' to wo'i &0W 


Arc SbrOAT: iacar-prnKt'indLbrfnai. 


pmwra s' -jOa* 


EpH 


Pan o + a ij-hs KTtan ;'t~v:. - jcanrt 




A-^iCOSlZ SE-D 


VCZ3. ipart9<uS-COSvTj.O. E-D 


E$«3 G»oa««il!)r*on JwProgrimTiari 




1*1 no. c-acM- (Eim-vc - RAM -iCJ-eC) 


PJDm 


iV»i,«-'>i::iv:.;fti)N 


Bitchfieak Pnara Bew pregnin. 


NrMrt 




Cf PK» WH Btfi 




dutvtKufiTy SEO 


DaT> (■„":--_■- .py - s? - s- a, s::.' pagrim,v£0. 


Jot Tmnj*vmiii**ara&*glitn!aJt* 


hg 


A Sctaan af las of b*< nc ig i iflt 


LPildi 


Pltnlor prsg'ani?'atibcrt 


GranTyWa'i Gsre s* ssnes s-ips and biaa -: «.v" I j 


UyJib A t>r*y ony copy si Ml ft i*nft 




wmdam sy Leo "Bo!i EuTk' Scfwia 




apanldlfirig unc* An-gaDOS l-t S-E-0 


Jao* Aa-naa usar titvaealsDU BfJ WB, v2.t. 



1 24 Amazing Compu ting V3.1 © 1 988 



For PDS orders, Please use form on page 128 



Le*a Usy 'esrearovTC -o*.». 

Am Kta t tends*, v : 

L%-3d 3D tension of -nedaiaccrfulr- 

MMl gar*, vli 
Logo Lflga'r^i^iiwjee* 

SetCey D*-a iwyT-a&afltoF.irl E 

Vpg UaaHdwayt to* airing wMam on ton^ 

VtO, 

Eati. P^DHh71 

A:Fbi MftMiHatotfllng IwJautowW 

A- g 1 BiBC MlCEfaneouS programs ircJudrg 30 pfl 
p-e#am H ak**doseope,C*A&ga caw 15 
pragrar Sattfrptfisen uauy Rng ifti'cn 

pogran. S-E-D 
Bocks A van is on ot 1 mi'^bjtiMlh 

va- s=* cs :■ ttodu, E-D 
Comm Greet brrvraj program. v1.3A.E-D 

DifcX L~. ~y * F eo ;■ g ■ «■ Bys-tor E O 

Fpc Smp^ image pwowing programme*. 

OWrafcl on IFF pictures, wth sever «l 

tiara, "-T ■'<; -:-■;.--.. E-D 
tonl* Mases «■**>'' es.v' 2a, E-D 

tone hew icon* 

ha-rfarvs Two newfara; VaTc". an wcrofworj.i 

■Twmnlfcrt. end iQfr.ff. a pc-d** M 

PatU *n AmgaBASrG CLI sra : i program. 

FYrtamo DBfflCflfffwooTMTB^Jilp'iKUs 

PDHrfrWrdcm.v1 2 hsMc'Mlra 1 
custom: wneows. ^j. no 5*05*1 
grvng C w tssar By sau'os. E-D 

Rot {Vernes re r -1*1 3-3 ;wa *c S E- 

D 

TraSel Sea lM from WarkMflcn, E-0 

Ti* !!ti- at IFF pCm 
F'oaFiahDwH73 

Am Cn-attiK^y^i- ma-viwrj-! 

A^^t-ijy tWiftfS. A*} I'XJJJH ^ntl', 

wcwil unS igwiwnCmloHH. 

&narrware. mC. S-E-O- 
A.Bfco-Ow" Fo*i iVBM) r - ■, ~q - ftse las 

Wur*e-c4oied «!** frC. S-E-0 
Dp Gena^E^cav^Lna'ace awe's ■ 

»er 15 tgrv**, go-jig r-urrn* IO 

cfX-nBi.iKirx-i'anxiaiwilo-i.Bt h 

C.*^£-D 
Dseatv* Sowryd*Seys FF files, a a Nov H Dr. 

OoBb'l prea/am. »i €, S-E-0 
OTnrm F1»bWb. NfngwmttltiMiM 

program vl.lQ. E-D 
Eipoi* Re-ara-e.es *«^c->*s 50 rr a: Iwtm 

put! C*-*njDrCaag«SatBiOo»eK! h 

C. S-E-D. 
Ut Scans a *xt W, conwra to C-style 

pfifTtsU* i"*ings C,vlO H SE-D 
Lnv *Long Move*, program w*s wy « qI FF 

5ti-c.«k,attir,jS "i ai 

5-riwn, E-0 
U:.M<r Uj^wpO'-W^HBpeB-ntB' ana*co"di 

of non-use h C, S-E-D 
Pi©./! Ejbt o« of eomolhng caralal port wn 

asou'cesinj»ad of ow PAR dev.ee h 

C.S-E-D 
FW i ff ttt l CMttftint 
R_-&' i ;-fi"^-: SriirtoR^BartondMSfi, runa 

pragrm from ra CLI *! aw-ig r* CLI 

w;z* a case IrC.S-E-D 
SrjpShorl Serr#rtnrjtfrip Utl^f.ypOi* FF 66 E-D 

TyocA-cTr- EirM -ilM i I Oflv-erS -i^io' t*r , ;r» 

buean, i-o uaiM «am lay u <! h 

crBswe kClrtUfarrtar.S-E-D 
JEtftK Ftrairti ■Sftj-Uyran ha, « 

tuara«.S-E-D 
FridF1ift[Hih74 



C«3 



>• 



Ec 3 i-c 'pc*. j a 1 cj- -i*ci .r j, E-0 
hVcapa g-tJ-c crsrar a,* s us and 
•cceufrtooryfrtp. wcr.i-c ic-w- 
IwUh C. S-E-0 
Sn-pta WYSW/G tort«)V»' (v 
poa/arnn.fi-25. Uccres'FF i) E D 
Oreo^irjpw W;^Wncra*jMra3i>w ,/i! 

UpdavtoaikSt. E-0 

Fundi AmgaBASC p'Bgnm 7«o«ffiuiiaJ or 

■feMfcpO 
Ltn T«*: vewig pogi-. Iks Iki 1 

•rrrjn)'. v!,5. .0C3» t> (*ft 3i. S€0 
H*f"»" Scar i C soufoo f M And c=.-s*jca n 

vmiU'miitflia'rnVvojrTBntdncV^ 

SEO 
mCAD Cbpcf-pnantirJ dflw^j pfoj. «12,4, 

updav to FF » Snawwo, ED 
Random S-sefifCo- -_-E»-gererrj- "C S- 

E-D 
TDarfcjg HanrtrBdevcssbjf fiwcetcng Eioc 

Se-xC?! arwaspirtcs-v.-C.vi: 

l*irtl CorwarSir^M^a'rariaindiHBroniuni'ai,. 

htWbi 'cftan* o«on, in C, S-E-D 
XCopr FW«J»-*a«hJlAfrrgB0OS , cspy t 0Dt»i , l 

on^no^rwdA.uaHL^nwlcEarai. E-D 
F^F t .hDi.k?S 
Btzm Ray iv^BaftfeurAt parts and 

gramiwrtjf. S-E-0 
SSpbmt Paytrht>-ipr<w* as aoova. S-E-0 

Cortr. C hut* tar G*t.^ imra! p/agim ^1 It 

S-E-Q 
Copy *a«am«r{ 'copy' cDFnnand vl fl, 

PMHM1 

c;* - C.S* 
OH Si-playiffinC.S^-D 

DuU2 Arc?v Drl/ir in Uodubi-^. r1 j. S-E-D 

E**i Fafi W prefl/an ft £ £-£-D 

Ft) FiW ■**=»■ m C,S€^3 



rit-oCocy 



UxmO" 



S»Fent 



SandiafrierptotjCLlMMan biiM.m 
C5-E-0 

Uoort* to Oik. 7i, ItH s* - ; -ie DC -if 
S^-0 

Oangn ffvfan! m a WstfirrWi acnurt. 

.•? C &E<0 

.AooJw fait 'or', in urr«v, S-E-0 

Fffd Pah [mi, ?a j T? 

!>*•»• »* a «H anu Zu*r>^iG'iy'j Oacotfrtjbvftnfcr 

r*A-ca Draci nd>-o«. ir-c^TC re;-*;* 

and (PWtsrn n,ppi#d 6»(A/tto'Sf*tePMjlK76ancJ 77 

FridnanDiik7t 

Cyaaj Cyda ga^tfliWTfon', if ID, E>D 

EOMS &pa^.OWy IteCMtrjl S-rr^laJor Harr».E-0 

U*vDaJVr«.- Maxe^'a:5ft-ffr: , #na"arcMDdff-* 

ca-s 3 ». ' k-3" 3«:~9 co -v praaaa. 

¥1.50. ■"UaraC. S-E-0 
FridFlahDMil.7> 
AinTao s. 



AingrOev 



Cmd 



CLI to&'i in iiiwirjlaf: acho, \aiiOi\ mounted, 
wracfl, ip,^. S-E-0 

G.vt»¥C«rTiul5pl« nanet, in C. S-E-0 
Exarpta o'i dos hand* tiraiow* use of a 

CLI va ffi# mU pot >xl,o« >o^c» n 

Aarw: SWrtD-ew 

ftwrctspj .ns-a.^Lfj 1 1*, in C, S-E-D 
A^fliXK^n1t 1 itplaDBrn#rr!,iPi C -ri 

P«mflirt| I'jm-dl mtairaat, in C, 
S-E-D 

Dipiyia-ot t-sm TDI UaOu'i-Z eornpltt, 
&E-D 

Upoavto pfooMapaowlp'og'iP' *-a- os.« 
63 m C. SEO 

Plnyirfi 'rwgi'ifwipw;*! 
aa<pt h C. S-E-0 

Arc*** >aT-ttyit *« teTaar. r C. S-E-0 
F^oi pa^-i a»t r C. SE D 
Far uor-pa, H9 a qjatss\ aooaoa Yfll. 
j¥« -vLncaOe h inr-^, S-E-D 
Ftana prtTwrn nti^ 's r nw s &. - 
C, S-ED 

Eiarr pa at 1 ina.'td ii&nfy. n C and 
us*- o*. S-E-0 
S.-r>t O-aaaTtMli «a-p« n C, S-EO 

Who LiiatamannBadyardwitqua'ja'S, 

m C. &E-0 
FradRah&taHO Iaaa.Fr.dFianiW], 
Frtd Fan K nu [wen wttidrawndje to cwr-y: cow s. 
FfdFi*Piakl1 



K 



US-;' 



U9"Prx 



Ifcu-W 



PifTbiA 
QuwyAny 



J*-i'(«L6 



Tax 



V* .10 at a -at -a assr-tic 

Shrna t« FACC Window *nfl mjv« it B 

twhaofc 

bMcuttom FFar_s.-p3 sipoc^orcsy-TMS 
&■«« MtUCin rjl a- FF fie Odd VI .4 

upCalD UOm 74 y ■»—[>* co --n-c -e 

•dtw 

Aapaoai ednMla Rane*' b add adtnej rd 

hufrryla rranyp'ognriTa 
UioalanaKjafenv 
'VS.O si r# tcort pf^'aiMT r^j languagt 
Ffboim r« htyaoard md mfruu utl pass 

WO^ar-Mrad 

haca creaac Van 'hq' 

Smuthrn an FF t. 9. 

Edcp mouat c< scai-n a Cynano! 
FfWRahCHahH 
MhajpinA po-l q* Hi cuw Cnwxfl^ar it3 Woodi Acvenx/B' 



Aar?6B4 
AabFk 



OecUFF 



Conrrin 

Form 
fcen 
K*yL9CM 

ScaiJipay 

ttrv*C 



MdTwi 



gaT>a 

VC 50 a! a I 



lilrJ. 



Ed 



srindlBint program, wrtl 
acoa. adu. owos.ar'iiTcedUnDajena' 
DSD-Dims D»Tfl v*rtc - of Ois-Z-ftaa "ror- C*^a 

Co as: Sahara 
DX-S^ \f3<» f*r r/DO'irr fer- ftaafu DX s*'4S 

■vnr*ww», ucaaa taataJstt 
DtKUan V't of anof* DrUj prog'trn 

bona HtvafevfeHW MHioM 

Fnt-. Urvvatal MO parf s«r» vl 2 

Room Anarw WtfOar^en -*w, ptifa l_-a- Lar»- 

Sand Gam* a* unda fe ow-nj p j & nw 

ftajflMlHatH 
Trit cHfcajrtamai darnD varson of TeXtfam N Squared. 

hia iifrnad u tfcti 'ei «nd ?» prvvKwer 

can onydao'i)' an pages arlaaj, rrdsffy 

B mil r^moaf r/fcnaanapsvdod 
Frad Ftari DUV M 
AudiaTrMlP-oo/f^ir^rnFtobFarA'jJbryAijgirtrAff 

Wold arte* 

Bit*' txpwirrantnon p/ogfim. VI 2. 

updito la ditk £9 

&-:>(! fc f. bm Ur 'Jll-i 'ad'. Bucd en 

ne ad.to> h SaHvara Too*. 
OavrVWara Ga-c j'c \-e% it m 51c [jx^ttL. 

viOi.updaatod.sk. 70. 
Hu^Pad Adds a^l padd<nQto*AeuUbaafar 

Xnodtm ffinsffliajon- 
PpaHandi* An Ar^aCOSppedavioB^rchiajpora 

naTWpjpnand Upa VT2 
PopClI V3 el a w-*ay to jvoh i CLI wands*. hH) 

icwi urir, L.poaaso*«iO 
flao-aaa* Uooaa a dm 34 ait ha «^»' tjm.it/ - 

DPa.nl 
ScerdDsyos V^1oti>nDunfar>tUoaFbro«SCSI 

drinY. 
Vacen Anovw Scnwaq- haw. "jAa» TVJ « sacc an 

•ow 

Frad Fah OtajU 

C»- V?.Q$s*CH&ni'c*-t*s-'* 

F*fl«q SaunnawWard^vgjtDv 

htdt ridasuparao'irM-yy'fon prarj'ar-s 

H apfTooi Shar*M«a as * a -stp j itc™ FF -egti 
Latt M am SBnw$n».«j 1 tyary a ad ai 'cm riarra^ 

StJjCCpni 



Aa*Q £ia-3i« 0* »n-^ 'aw-aoean aardifl 

kawt 

Rao«: L-na.7 Unoe' ta- Wo-*D«»r, »m s^-'ce 

VMana Va-V-'h* to»! v*wrg ui«l/, irl S wp 

■not 
Vrwrs BtafPi thh na*a.r»adar. 

Frad Fjaj) Dilk « 
AutoPor'JL.^ -ia>«ca wrndo* Lind* 1 r* - a.M PO^W, MVI 

UMStaMi 
Oa U fB Ti a* fiijO«^-CX|.ri»n«!WiDrri5|iiiafrorr* ¥l I, 

S-E-D 
Cmd V36 cfataalto lodtcisr rti' a.^u!toa *■ a 

FilellSG-DeT-3 De- 3 of Sa'Wxd F'a Hag, daadan 

it, anagar w-i sound and 9-^' cs 
Frad Rah Dim ff 
AovSys Ad«^i« ijriarn from Bya laty 1 187, 

v12E-D 
AutofconOpon Fools WorU»r(in to oparidilJi cons, VI 2 

iipdiatodEk 73.&E-D 
Cfaz Canvuru IFF f las a PosrSaiat, V2.0, SEO 

Commadi taiMack/u'a Con-r »o'»i Eichangi, an 

o*aclovarylom*n»ni rt tiauthanoStr.vOA 
Of Upcaaae* 75 a 1 U*u- * *d **. S-ED 

Drue vt27a*Di''on"iaii:c4tor. -psaatoo t*7t 

OropSmarJovt V2 3 of prog-ar Mi! pua irtidowion 

Wo'kbe^ch, S-E-D 
Eto S"a-od ica-jeiji-pff ^ Ui'iC 

D+!ard* At At 51DOS obvcb henrjar fiaj arwiki 

j-<iw« oertia-j .VM). S-E-0 
■nsta.) Aarna«Arr^ia?X36'cnaai , Dr»0'ir , s,&E-0 

btarrWaan Waa for aw -•- 37 s as-r-5 v2 5. S-E-D 
MovePo.rto' Uoves po r* to avan lacaia-rt, S-E-D 
UoveWndD* bbve wrao* to p/van bcaMr, S-E-0 
V.-rx5i kL^cnng SQuafttnadi, S-E-0 
PmTast Eur c * ran a*: a w ' T^v 1 1 PAL 

MONO* S-E-0 
Sc Gane'irs 'arw scaTKy. S€-D 

Tbk«6K TaUeOSprrafdnvw 

WEClkPF Fjarpt* of duK-pliyt*d town, uodaai to 

OMi!. S-E-D 
WarpTait Fie ait •tr*> , -$ rauin«s, S4:€l 

Vaiff -Eia-M FF nsada*. S-E-0 

Zoc A * t a'crvc i-i0 '«:', wl .liA E-0 

Fred Rah Kak M tfcaFaaFsrflfll 
Frsd F sn D J* M ras Men ■err o«dfluB a oopjrnrjT prof>#rr» 
Baj EM Baa H |rep»casF'«F,s'.80) 
OnMaiar D'vtca-j.agjap-og'aT. VI Oa.E-0 

FuncKey Sr , a*BWBi r e^cton iff «c S', V! 01. E-0 

MFFOarro rjaro of UoraF<rtF<*< dcabua 

pograi! 
ScwS^ Ap^st KP ja n ppaJte i«* Re*&njnc«» 

&E-0 
Snake Bouncing sqr^ggly n-ies dprro. S-E-0 

Ai<1oEnguter tcrwn canv»0an requestor tmprovsment 

S€-D 
Den oLton D spay Han S-E-D 

FfHfFiahDlii.lO_ ['apatatFfdFithWj 
AnG&»' No^l !*¥¥«*•' of 1573 itors, vtdia, 

iTA.day. E-0 
CardFi* AT^aBai.cci'd^«iLf?y ad. E-0 

Gorman CortKl* handdr Tpaoim«rt g-wi dna 

BBfng arxi hsary to most prbgs, vO » r E -D 
Minc#V'i:- &<;'-. jSCitoaen'SUandecra: 

proj-am, E-0 
hawCar-o* fao»3rr«Tsb'i^sBrM?DO«*soa-as 

rr 14 4ti CPU : -<■ E-D 
Grata Came =' Or* d, E -0 

PrriTtit Ds»a)rs*t:*4iw'rc.aj£as, iMaan. FF 

d'loay. vl ^E-0 
MWOBrt AvtoTascay— arflrwr gencato'. v£2p. 

E-0 
RataEhneh Cyoas coon of Woraarcn naoidnjp or 

k: E-D 
SnonCJt IMBBj unjkt-Wy Shoraua h» anamncj 

COmr.crJy ^pad CLl oorr-noi, ga. mi U 

OrStornmacraiv E-D 

Sra*P--; DiEMyi and pnna FF bctni of a 1 »i. 

indcB-?3iprna'o-toulay*s.¥Z0 E-0 

Sizars Gnaarcagam9s,¥l.7 0,E-D 

Firner Sr j! Wo^BBflCrl ttma* COuia err # and t 

mjftia.E-D 
Tools Inavia-ona tatf*: a ntman/ odtor, 

"flmory osaiarrp*'. ASCII chat and 
oacjaar. E 
IrriFritLftilll 

Advenor-a Dtfr-wn Language (AOL) at^pwsal of an older 
language rated DDL by Mrtaei tJnj«n. ChrisKortondk, 
MonaelSan.BruceAcer.andWi/imUiui ACL 
ertianDem«ntl by Ross Cu*irirrt. r-duded re aoutan a he 
AflLcarp.*, rasw. end deftygge., Bnirasco^D-nM by 
RjSSwTi La-ae 3 03 CLI*^orrTr*™!Or"lf Docur-«r:aton 
s ova s?e >sn re BUfJeTa. 



FfWfF.ah&». H 



D0"JD865I?uitTbr, inc/udrg C 
Source by J VsnOivm; 
Angs po'1 py Jaai Sma*A 
Ttatpreoeua- updea forr* FF65 
hia ■« ey UNIX tm Bmm ata-cnea 
iWfdrMnBTnS. pe - ar-i ac*an 
atsedo-Daa^s BvBodBraa: 
A~54po- Dy^^anWoe- 
^CCrta'FFcU «raa- oyJ Karfton. 
pads An otMc-,*e s a m ip* of ia 
byasfwbBTB'imodanD'aniaV SE 
L« bVii >oV, Errar. venj-an 1.2 
upda1io'FF74 Sens t Bart and f 
anwd 5 E oy Mark N^op -a-, A- ga 
port by Bed- Lr van 
Lfirary ra; rr c»tJr*na me 4BSD unot 
or sccesi 'XVm by Uneilvyer. S 
Fac^swdwscr^eirfHSionparoe'. 



compuas, and 0--5 eiuessan 
ncjots Ti'saTOa**' Vtwi 
support c So jnce -CjdeC 
ayJonnpier 

Shar Tmpn^rs-srjpBrtirdu-aartsnaf 

a-enrrti pad lonaJUsarw bund ingof 
— utpefcit'eifa'poKr-gor 
•iectorKmal rcjo«* C ajurce 
By FiDQ-ar G D.'ot 

S-» ,,=■ Bl*«sra* Ar*i'&raoa«aw*n 

B-nrypry ByaryaaNeiii- 

Utariawt Encoo«*oecooe Orary 4 e» "y « naj or 

tHtArj rrarodi UpflaaafFFSl, 
inaudes crec^.- aonr»au«. 
campttB« i nitioid0¥ersi9r , s pus 
Bar scam : to 5 0e* vw s a ns opt j ns 
3y Ua-k. Hortsn. r-otfan By Ar 
Rsaavra ana B*yce Mesa?. 

FrtdFehEVihn 

Dm* Vraon 1 ?7 WYSIWYG p'og*i-r- ff 

edisy. Nal a word processor, hdjdai 
kay mtppng, as: asoH-ng, ■BttJina 
laaita. r-ulsfrtwraaw*. eMtya 
cafirV* 1 ^ "^ Ltooi*o 4 FFa7.i 
rtf^wsso^cecotlB. rjyUajOj'lon 

McioEnict Vrsoi30-, utxtEtotoFFSI raudes 

source. CViQByDavaGariroyrriuiiala 
— sd*caVi"'i by Dr* Lawrr-OB 

BbOMUMlII 

AdOoTo»a DenscrognaTS^ornRobPaeH's Juy/ 

Ajg,jr isuty ArgtWo'd on 
aax«sr>gr*i^oadevce, VvsonZ. 
updaaofFFsA hdjoes aatai 

By ftoB Pecs 

C*cWJpFror*t Stniu in fynclon to O'CjtTo Front 

Dog-a-" (F-FUGJ. brng. *-05*» a t* 
f-OW By EiOt^ng on 1^ oat of 7*m. 
V1.0 ByCavoaCanrtnaSE 

riVOtMowi* Ajaanaicary actvatoawndarifrpry 

Oy mg-f>grafflauBipoinir , >nB la 
w-d?* v ■ s ■xuotsseu'ce. By 
OrrtJeCenrene 

FF2Ps Cor^a^iryFF^etonojrscr'or.(af 

y-1-5 a* vewng an a poiacrct 
cor- patB* oerce. Vcw ii ay 
W:i ar Uaton ra Sr- PaoLca E 

UoduiaTHa VrovsUodua2cjrogf«T > rning 

rousras byJec^HaA 

TrrgrOd ETevda-random 3d ra«if scenery 

gerarflar. Lcdaa o*"sc", FFB7 By 
Cnrs G-iy 3d By Hawtfi Hjl 

fjUfuhPtii.ta 

Cmd -K ires me ser af.oevoe or periife. 

device a 'jsws a i fie. Uaaful I tor 
capl/ing cr'.tjocsfBrdetiL.ggng or 
Wnt" pfirrjrvj.V* By C Scheainof SE 

CygnusEdDarc- Domo ^CygxsSfl^iCyonusEdad>M', 
imirt3(e*a. miajBi aiita atfto* 
also rrw jdes oe- s 3 D at UardFXF 
ByCyOriutSd^Sofwri E 

Oomt 'Get Ova My Face* gjaJM Ba Guf u go 

■way ft'C iiows tne use* a oaan-up 
and sn JTdown maf* caany V 1.0. 
byOrHan Jonr.sanE 

J*.md '9c:':ss« T r'ce;'-;-se r-3 

irdyoaroaiar-a, sanarr- mfefar 
tJtot peypsc-i Gsod'ar »-;tx 
orjci^aKCTgbugsECyD Catftfora 

Ui"gaUam aarrnpa -rg -g s' Me-Lit*-?** of 

v*z -*'-:* r cy *c>"M nin do rot 
Vvrari luQcasaf-j:. a am aiocai-ng 1 
wrtg-'o'r'^er'o^wrxri spa^s dot 
DC**=i V2,^pB» ofFFSfi. 
by Ce-'aryn ScnepprerSE 

PnratSaa*r Aaniilar to 'Crtf, a owsdvaraon of 
O^pulOMarad for prrtor S a ' f 
6-ry erty, soufce Bra, so* tram 
auro'i by A*i Lvsna 
and J-U F:-«i 

Jkc&*ftapjiT am.ar tj 'Jogi-a*. racerdsrd pays 

3-*j"ys-y So-rce svfliatHT trom 
■i-.r:'s.. Ann Lvf-a and J-H Fo*a«as 
FrtdffihDekae 

AfimPayar nrtaaaJMrHdarandd sp'ayfnyaa 

■:r- :'■».-.: s--:-i: J *cK5ca3«. 
ScyatJO., S> J w. Fo/Ts-rFion!, ml 
AnrraB'ADpatceby Mar]n Haahfta 
Cheia U»rei pesad Amiga port. non-Amigi 

tnarlioa. hg*i pJaysrji-ty. V 1.0, S ty 
J.Saroart, AmgapartoyB Lavan 
Hacktanch pra^oes sojfcb l cWa.r«Bencn-L'** 

progre*n, fa erDeprner-Dnori Md 
ndchte of rawinanaos ioaB, Hot 1 
WBancfi aotaoatnant 6y Bii Krrarsay 
Lab* Prnj 'ape s wr IfDffay an V 1.3. SE 

&vi a >* trami author. Wi'r»n 
LinsD-a«r Produces 1 n» prawrgs tastd Ofl 

Gnj-*-g co^'-tiei st>ad n § an ^a 
hdudai oamo rat 0-wm an ajir* 
nip of ms-USA and sua co-ori 
V10.SE. CyJomOwi 
PopLtoHanj E«nwwoair-p^mer:'ngrjop-je 

nanus, 'easorirjrycor-caiBe wji 
hajJianna-uiSE ^Daa<ZBr»n 
laii6H TeKt^^iiMTVii^rji-^o-vi- 55 

OyF'iJE.SajOi 
Trreftar Fear end Cip -aw w a-ogram E 

ay Bfuceljirisi 
Wa'pTeit Fait tett irov ing fOJSnas. a betm^o 

w-TV apocara- pograrns TertOSftay 
'as ast or'is*' ran tm M Verwn 13 
uodaaofFFtT.S oyB*&ty 



For PDS orders, Please use form on page 128 



Amazing Computing V3J © 1988 125 



A-Squared Distributions, Inc. 

Absoft 

Aegis Development 

Aminetics 

Applied Visions 

Bcthesda Software 

Brown-Wagh Publishing 

Byte by Byte 

Comp-U-Save 

Computer Systems Associates, Inc. 

ComputcrMart 

Data Solutions 

DataMax Research 

Discovery Software International, Inc. 

Firebird 

Fuller Computer Systems, Inc. 

Haitex Resources 

Hilton Android 

HyperTek/Silicon Springs 

IntcrComputing, Inc. 

Kent Engineering & Design 

KlineTronics 

Lattice, Inc. 

Lightning Publishing 

Manx C 

Mcgatronics 

Meridian Software 

Microbotics 

Microillusions 

NevvTek 

NewWave Software 

Pacific Peripherals 

Palomar Peripherals 

Peacock Systems 

Pirn Publications 

Pioneer Computing 

Prolific, Inc. 

Right Answers Group 

Second Source Systems 

Scdona Software 

Snake Design Software 

Soft-Link 

Software Integration Solutions 

Software Supermarket 

Software Terminal 

Software Visions 

Speech Systems 

Spencer Organization, Inc. 

Sunsmile Software 

The Memory Location 

The Other Guys 

TRU-IMAGE 

Westcom Industries 





FradFh.hr>lkl7 


hi t*% m aT*ri ¥*t n *rf 


Rep 'aces FF57 ty CopywB proplens 


3RTISERS 


GWATdPKTB 


knj!ef™r^a:0"s a! Ur-x a,: and paste 
cerrrr.ards. by Jon* Wead 




tJBfNt, 


Prag-an to pM $."rpe tartan n 2 
Of 3 fJfr*~sDni dy F y^n Fsnftafl 


17 


Xgge* 


Vt 2afrM»! J u$9«'ira-ia!o"L U»i 




ham sodt and i«y Indng.byGrk Qrataa 


94 


Wwmnndw 


&-.v^n'i.' ^.).; : ,i- ta ■".■■.: -1 tell tlw 




Srd ir«w FFfimujing -; r y ne tejh 


56,57 


SpiTBS 


byVAmBMi 

Program D damsr'SJtlfl' Cjnrtfnng 


70 




(TO ■enCerSne. bc-nKjues. 




pyHslene^Ue)T»'Br» 


CII 


Stan 


»r"pleg'flDnics»i^i), ape's jrTa»y 




rfnuUH T* fnOlofi o! tvw ^bracing 


49 




pand-lur-ii. hdjdes SovcabyChfit 

Etta 


31,33,35,37.39 


FfedFljhPikH 

Access 16c60fW.-B"Tii prog'a-. based on Comm 


CIV 




vv.a*. inciyciw Itan NJMkntentaB 




gadget ca'orjM -*r^t.et V. Beta Oi ft 


100 




byKsr, Young .comrn byD.J.Jarri«. E. 


6a=kup 


Wiles At caDos d s-.s as no Dackup 


71 




destraSor.. feow^ns^anr* t#ffl.us 




d*. Rer^j-wjri-v* rj«sir,s3f>di* 


78 




ttvet;^. by*af KemSE 


DCOvna 


Dtf-Ca". Zj.idw, ca* og pro; -air. -ft-: 


53 




liTi.tedactfitog-'^g 155 *« itaire. 




by 6d Afajdj rAccAca So^waie 


27 


HdtMnr 


MM '652-05 '.ro '.- coiTol-er c va 




Card Cabab * ot mi .-•_*- ig 3nwrJo Ms 


64,65 




and * ?coo«. htddwrb eras o! on y 




ore rau cks*. Dy A a" Kb-: SED 


63 


QEfea* 


QuicVBase, a "Ma Base Ma"ige j -enr 




uHt]f\ Wine end MBBblifl a fflftrmum of 


75 




2M "aa'cs w V« by Kekr H;V'!S« i: 


Thai 


Tha. language qu j prepm, Speak or type 


23 




*^5 sl'T-s sentences fc :- tupped ,- >' 




byA,anKe-!($F 


102 


F- K Flah O |k n 


A Reroe* Verso 


.3 ■ flay- Traarg ConsruCJon Set f* rw 


68 




An-ga Com pub- by EMlfl Reed ED 


FredFiahDIikl 


fld 


44 


Sffse-k 


lAjrtseeanmcof.+rD-iSeaa? FAUG 




Twin : DyLeo "•:.■:. 


106 


Canaan 


Cysoe^aTO* rWacBwen^prowJeilna 




a*Sng ardra-iTind InerarEret 


108 




Tm&vflrrr; b any aopiicason ptogtm tin 




urn CON: wtndawi Ehimim Vt,0 


7 




byW!:iamHaA« F. 


Warder 


Woftrjaricri OjD'iy rwfcgare, uoo/ndfl &f 


22 




Hoo«f onFFBS, ^wTii.'coci 




By Paw oi &vt E 


15 


Fred Frih Oik, 101 


C-Pa-a 


C"Oiif piaTB ge'VFi'.a' (^' Vd«Scao*jO, 


9 




Cfl^Pttles a c'kwm crcJar polygon urih 




t» loaofwd aunbtf d wibfta Vi.aey 


43 




THad Fbfyan SE 


fconAmnUN 


Chang* Wor*be"cri torn w?; FF-fr-jBn 


11 




IflipySWari Ltv E 


MoospeU 


Standalone sp«'i% cneaer scars set < « 


cm 




tra rtftorz.WHXi. 1300 c&irnar. wot) kt!; 




43,0 DO word main dctanarywtti mu'lpta 


i 




user d-oiiM^ary sum rl hKriac«wfTi 






107 




Aap feflKQlltS nLfcel«. it; as -^ ■: 




lutpeciwqrdt iv i^-; re .^- v 


19 




option. VI C ay Oi n * La-^e^oa. SED 


m 


ffxdi tuary ana ui; iy set Inezes Mdi 


95 




fflan.br, TOJlrg ut'i^. lUUi Jfllry, And 




mm byBiiBanDnSf.0 


12 


Printp 


PoracnpikTe'a'ffie' Tadsaic prav-ewi 




pftKaaot J -*soi , T* BCWV 


103-105,128 


KanUps 


byG'egLeeSiCaaytE 


116 




candan) taanupoOj ard LEtan^utf. 




Optont include (1) BGPSfftjp.Obj. laf re 


3 




W4AB«nch ptrjgFairf oi CU procj'amt wti 




?*r:/D — arc -e cvi-elel f? 


81 




WrBSatjp 06«. V Wyifjancn poa-ini of 




CLI wografPi tn: feove noro-nTand fcfl 


101 




oarar«te4. (3) CLIStifM) 0D> ':' CLI 




programs fl^Ht re^uiwconn.srt] l.f» 


6 




wa^Tira^twtdonot-rB&aa &e 




rYorioBertfi rjnraw*. bySryotNesan SE 


58 


Fred fhl D" ik 


?l 


□bug 


Uachte irdcpendaf^ - x- ■; M*: C 


83 




oebygg-^ pacKage. Upc^fe tr!FF*t. 




by Fred F ah r/o.4[,ng tupport 


115 




ay Br sy a< BafW]H SE 


Imuku 


Heavy COty »fl pnbffl rr>abhjf»g sijlt 






iXSuOCS STB* BMfcfa teit nVHWAftlt 


92 




UptSBjf, By Pe* Goadeve 


127 


SactamM 


Recow lost of danaged Cai 4 '^ Ssppy 




of hard Ciiks srfepar a danagetJ w,-* 


55 




by Dffftf Joiner E 


S^Con 


E^eiifiput Ine i j **Bfpi>eier wl^ wii ;-* )af 


50 




r„ «rvg UcgraOe of FFS 




OyPefrGaodwa E 




Scan 


U* corj B ca/l If aopra co-tairtiTg CLI 


113 




BWWimf*f V?" upgrade c+FF Jl. 
rjy Pvfe GoocMv* E 


16 


Fred Fiah Oak 1QJ 




WTws 


Ubnf| and EstDf&fl- imp*«rr.enHOjb! , *» 


74 




tj'Greatng and Ulfef Tees h*d in 
memo'y.& 


21 


C*c 


Aprog*arrrlM fPNcicJrj* 




M 


ACo»SfV'-P>9g S 


3 


DosKw* 


Aparof Df0fl». Kon-on aswp-::i;.M 
UK b one or mo* floppai tor cviek 


109 




toaOing. Doesnt Bor* Dos taTmat 




hUDM 


A prog, a iwo'ove control and hand! ng of 
re -if::- aJl i i:-i in &-■;.'■■.-. 



y f i jc.i* 



n Mt kipDftUB. fy MpoFcna 
F*a^d»m3 DftfFlBfj aidupoaas 
■n some TO dick hwary daQ^ases. 

Takes *H N ilesr*fiiesaTSd's. sn 
ad' A a-xJpaO'.srie-ll^Oasng* 
■**. ijr MT.»«g wa toc*-i. 



Soi 


Am^a ver«n g* la Tare 


Frtd R ih Ow 


IH 


Anay*.caic 


tsai^geandpfjiwertj 




sprHaiheet prog. 


FreOflihWealM 


Asr-PiDga 


Son* Tic. esse^bty bo!l n 




Ejoe4ss***S 


Basc^ogs 


LesfSqja'e sd '*■= *afi sg^ve 




prons a-d r/aans T&:e. S. 


Biaon 


a ledacerrwiilor urmi "yact" 




Mfjinand i 


DrMun 


Anorer prog m *e trad Jon af 




dlp'ayhiwi'. S. 


Flar-Kty 


AJowi kayMfrd and --..:*■ -,^'r. 




■a be lamed UM| a SaSMtrd n 




Kftrad 


GrawtyWa/s 


Garw o! pla.nets.sl-jps ard Wa« 




-- -s v? todab a cl* S-: 


Po2C 


AtA bWiB aC-'inedefvrtonS 




««!***• irtfton oo.r-»rS 


fVMi-Fii 


gLd rjr*8;"g mrj js^g Feewani 




ryooaiHt. S 


Record Replay 


S - ;: r to 'Jaunal' v2.Q 'jpdaM tD 




Mli 


FH.nahDaklH 


FwXJtay 


S^answa* tjrttijniieyad'j:!. w\i 




uHA^dHea &>^nivtr.f 




rom auTiDfj Anson Man). 


Mon AH 


Asrral wectonot50fr*e Am^a 




artwcK. 


OwlRrx 


A.^ IFF ildeshowand oal animation 




progr*rr,y0.l3 


RMkll 


A Firrar- gam A. 1 so caJ*d Go- 




Uoo MJi 


FradRihOd, 


167 


C*n 


V2C7 tt Matt Olbi'acsn Ike 




s-w 5. 


Drft 


fVutf. 1 Bfril.ar^) other comiTion 




"dirT pTigrarisS. 


Pn&jite 


Su»proi»otoseiLOQe of So 1 i*j 




K«r at P *0 Requesiy, KTast 




Ooneovtst at] a \.".v a ori Km 




isj-jyv- fw Amiga BoqK l.Q1.$ 


SVTerjli 


Some useful Jao*. S. 



FndHih&akUll 

ALB 

l> Ma star 



Doa-FVted 
MonOCMP 



S*cbf»ra 



O l«wg ryog based m LEW pn; S 

0«k caaioaai' vl.Oa. update to 
e»S3 S. 

FVnte- f><« "or n EDWn MXK 
prinhH wr upgrade tot nsraled. S. 
Lb*j yoj Tcn'ur the In^ifciessajw 
trwTpui BUHgh an OCUP wn 
dOw. Prirti rw -rs^c 
d bsi,t o jse co vd .- atei.c- i ' ** 
vajuea G-ett broeojgging $ 
AuB D aevxl coTfran cots* 
sertngt a ne PHT: dew» S. 
UtliJfli to recover lost oidaTaged 

vl.l. an uocav tods* 101 
V^tffl enulaa* %/ aTeicjona 
iSlO/tf t4 (V3.EJ update to 
di* it S 

A ft* mHVaY, rrucn ike 'a/c'. 
vi.2«fl jDdateU9tke7 



FrtCFUhPtKIBi 
Uacnine 

&T-CPU 



A *#*■-»*« an. 

A CPrW in,irJias 6586 along 

•AhHitMlirJaRSL 

Alowtyou b nowupyo^r A.T-ga 

as a usenet node S. 



Fraa-FlahDIifcnO 

MSI 

Pdc 



A6M0C MHlMw *rrtayi m C. S. 

An opteiiiing C coms-ar tor ■■« 

&9C0O prorjesao' LCdati to d-iX 

53 M not Eased on TWCWMO! 



To Be Continued 



To :r» beat of our k-owr«fge r !r<jr-4Se*flS n f i 
iibra7a>etaa>yditiribjtBDe T-s rears •WfHu* 
■ifw puUidy pajW and placed m 3na Pubic Djr.an 
by fvjb Aj2»', »■ they haw ies7*cons pjtfihed m 
re ,1, «towr«h«^aveBd^rea IfyauDeamu 
aws-e ff" ary wolaton o^rt awrors wsbes. pie*** 
corTactulby WJil. 



•AC- 



To Order 

Public Domain 

Software, 

please use the form on 
page 1 28. 



126 Amazing Computing V3.1 © 1988 



For PDS orders, Please use form on page 128 




THE ULTIMATE STRATEGY WARGAME 

TeleWar allows you to use your computer and modem to play the ultimate strategy wargame over the 

phone, or on one computer in your home for $39.95. 




RIVER MEADOW 



MARSHLAND BOG 



DESERT DUNE 



• Superb graphic war simulations 

• 12 war scenarios 

• Animated artillery, armor, and supply 
units with air support 

• Smooth scrolling graphics 

• 3D perspective terrain maps 

• All moves graphically enacted on tele- 
connected computer 

• Digitized sound effects 

• Easy to use menus and requesters 



Make Telecomputing A Blast 
You'll Love TeleWar! 

Published by Software Terminal 

3014 Alta Mere, Fort Worth, TX 761 16 

817-244-4150 Modem: 817-244-4151 

Available At Your Local Dealer 



• Compatible with any modem 

• 300. 1200. 2400. 9600 band 

• Call originate or answer 

• Null modem connect option 

• Save game and transmit game options 

• Opponent File Directories 

• Send and receive typed messages with 
your human opponent 

• Fully copyable to hard disk 

• Upgrades available on BBS 



Amaze Me 

Please use this order form when subscribing to Amazing Computing™, ordering Back issues, or 
ordering Amiga™ Public Domain Software 



Name. 
Street. 
City 



St. 



Amount Enclosed 



Zip 



Please circle the appropriate item: New Subscription 



Renewal 



Please start my subscription to Amazing Computing™ with the next available issue or 
renew my current subscription. I have enclosed S24.00 for 12 issues in the U.S. (S30.00 
Canada and Mexico, S35.00 overseas). All funds must be in U.S. Currency on a U.S. Bank 



Back Issues: $4.00 each 

(foreign orders add $1.00 each for Postage and Handling) 



Please circle your Back issue choices below: 

Voll.l Voll.2 Voll.3 Voll.4 Voll.5 Voll.6 Voll.7 Voll.8 Voll.9 
Vol2.3 Vol2.4 Vol2.5 Vol2.6 Vol2.7 Vol2.8 Vol2.9 Vol2.10 Vol2.ll 



Public Domain Software: 

S6.00 each for subscribers (yes, even the new ones!) 
S7.00 each for non subscribers 



Please circle your Public Domain Software choices below: 

Amicus: 



Vol2.1 Vol2.2 
Vol2.12 



Al 


A2 


A3 


A4 


A5 


A6 


A7 


A8 


A9 


A10 


All 


All 


A12 


A13 


A14 


A15 


A16 


A17 


A18 


A19 


A20 


A21 


A22 


A23 


A24 


A25 


A26 














Fred Fish; 




















FF1 


FF2 


FF3 


FF4 


FF5 


FF6 


FF7 


FF8 


FF9 


FF10 


FF11 


FF12 


FF13 


FF14 


FF15 


FF16 


FF17 


FF18 


FF19 


FF20 


FF21 


FF22 


FF23 


FF24 


FF25 


FF26 


FF27 


FF28 


FF29 


FF30 


FF31 


FF32 


FF33 


FF34 


FF35 


FF36 


FF37 


FF38 


FF39 


FF40 


FF41 


FF42 


FF43 


FF44 


FF45 


FF46 


FF47 


FF48 


FF4 9 


FF50 


FF51 


FF52 


FF53 


FF54 


FF55 


FF56 


FfNA 


FF58 


FF59 


FF60 


FF61 


FF62 


FF63 


FF64 


FF65 


FF66 


FF67 


FF68 


FF69 


FF70 


FF71 


FF72 


FF73 


FF74 


FF75 


FF76 


FF77 


FF78 


FF79 


FF»a 


FFS1 


FF82 


FF83 


FF84 


FF85 


FF8G 


FF87 


FFlSJA. 


FF89 


FF90 


FF91 


FF92 


FF93 


FF94 


FF95 


FF96 


FF97 


FF98 


FF99 


FF10Q 


FF101 


FF102 


FF103 


FF104 


FF105 


FF106 


FF107 


FF108 


FF109 


FF110 






(NA 


denotes 


disks removed 


from the 


collection) 







Please complete this form and mail with check or money order to: 

PiM Publications, Inc. 

P.O.Box 869 

Fall River, MA 02722 

Please allow 4 to 6 weeks for delivery 



128 Amazing Computing V3.1 ©1988 



ROME WASN'T BUILT IN A DAY, 

UNTIL NOW . . . 



Create your own universe with SCULPT 3-D rH 

SC JLPT 3-D brings the power of 3 dimensional solid modeling 
an J ray tracing to the Amiga. Imagine an image: choose a color, 
a shape, a texture. Spin it, rotate it, extrude it into the third 
dimension. Pick a camera lens, set your lights, and let SCULPT 3- 
D create a three dimensional picture complete with shadows, 
reflections, and smooth shading. Ail in 4096 colors with true 
edge to edge overscan video. Easily! Automatically! Change your 
mind? Change the colors, textures, camera or lights in seconds 
if c eate a new image. The only limits are the boundaries of 
yojr imagination 

■'I haven't had this much fun with a program since 
Deluxe Paint II." John Foust of Amazing Computing. 

formance previously only available on mini and 
mainframe comouters." Info Magazine. 





How animate your universe with ANIMATE 3-D^ 

Enter the fourth dimen Choreograph the free flcwmg 

and simultaneous movement of objects, lights and camera 
through space and time. Details of object rotation, camera move- 
ments, timing and action are controlled in an easy to use 
graphical interface or through a simple script language, 
individual objects can be linked to orchestrate complex hier- 
archy! movements that simulate live action. Ouick zheck 
win frame playback preview's your final prod ■ torableasa 
compressed animation tile p| fron RAM. or recorded on 

videotape. Additional outpul Options include single frame VCR 
control or image rendering to a frame buffer card. Animations 
can incorporate either solid mode igoi ray tr; icing. ANIMATE 3-D 
is quite simply the most powM ul and easy to use animation 
program available for the Amiga. 



Expand your universe with the BYTE BOK TM 

Your Amiga 500 deserves the best you can give it More memory 
for more powerful applications, faster performance, better 
graphics, and RAM ■ re It deserves a memory expansion 

sysiem that lets you add additional memory as you need it. In 
easy to install and easy to afford increments. The included 
memory verify software provides a visual check whenever you 
add additional RAM, Tne BYTE BOX is available in a variety of 
configurations from OMBytes f o 2MBytes of RAM 



• Easy to install 

• Fully Auto-Configure 

• Fast memory that's truly fast 
■ His its own power supply 



• Fully tested and ready to use 

• Zero wait state design 

• Low profile case 

• Memory check software 




BYTE by BYTE,. 

Aborewm Plaza II 9442 Capital of Texas Highway North Suite 150 Austin, TX 78759 (512)343-4357 

SCULPT 3-0, ANIMATE 3-D, and BYTE BOX are trademarks of Byte by Byte Corporation. 
Amiga is a trademark ol Commodore-Amiga, Inc. Deluxe Paint II is a trademark of Electronic Arts.